小编Han*_*Goc的帖子

修改向量的元素(按值,按引用)函数C++

我有一个函数,我必须修改向量的值.返回向量是C++的一个好习惯吗?

功能1:

vector<string> RemoveSpecialCharacters(vector<string> words)
{
    for (vector<string>::iterator it=words.begin(); it!=words.end(); )
    {
        if(CheckLength(*it) == false)
        {
            it = words.erase(it);
        }
        else{
            ++it;
        }
    }//end for

    return words;
}
Run Code Online (Sandbox Code Playgroud)

功能2:

void RemoveSpecialCharacters(vector<string> & words)
{
    for (vector<string>::iterator it=words.begin(); it!=words.end(); )
    {
        if(CheckLength(*it) == false)
        {
            it = words.erase(it);
        }
        else{
            ++it;
        }
    }//end for
}
Run Code Online (Sandbox Code Playgroud)

c++ function vector pass-by-reference pass-by-value

16
推荐指数
1
解决办法
3万
查看次数

在运行时c ++将字符串转换为代码

我正在生成以下格式的If Else表达式

If(X > 10) Then Fly = True Else Fly = False
If(X > 9) Then Fly = True Else Fly = False
If(X > 8) Then Fly = True Else Fly = False
If(X > 7) Then Fly = True Else Fly = False
If(X > 6) Then Fly = True Else Fly = False
Run Code Online (Sandbox Code Playgroud)

我想知道我可以在运行时执行这个表达式吗?我不知道我的问题是否清楚.

我将添加一个例子

String = "";
for(int i = 0; i < n; i++)
{
     string ="if(x > 10){Fly = true;} else {Fly = …
Run Code Online (Sandbox Code Playgroud)

c++ string runtime

6
推荐指数
1
解决办法
4500
查看次数

python中字典的递归遍历(图遍历)

我有一个具有以下结构的字典:

 KEY    VALUES
 v1 = {v2, v3}
 v2 = {v1}
 v3 = {v1, v5}
 v4 = {v10}
 v5 = {v3, v6}
Run Code Online (Sandbox Code Playgroud)

一个键的值实际上是到其他键的链接。通过使用我想要到达其他键直到最后的值。正如您在v4 中看到的那样,某些键没有链接。我认为这类似于图遍历?


在此处输入图片说明

v1我想旅行到所有其他价值观开始:

v1 --> v2 --> v1
   --> v3 --> v1
          --> v5 --> v3
                 --> v6      
v4 --> v10 
Run Code Online (Sandbox Code Playgroud)
def travel():
  travel_dict = defaultdict(list)
  travel_dict[v1].append(v2)
  travel_dict[v1].append(v3)
  travel_dict[v2].append(v1)
  travel_dict[v3].append(v1)
  travel_dict[v3].append(v5)
  travel_dict[v5].append(v3)
  travel_dict[v5].append(v6)
  travel_dict[v6].append(v5)
  travel_dict[v4].append(v10)
Run Code Online (Sandbox Code Playgroud)

我可以使用什么递归函数来遍历字典?

python recursion dictionary graph multimap

6
推荐指数
1
解决办法
882
查看次数

Maven:尝试使用依赖项在另一个项目中包含项目时找不到工件

问题描述

我有一个项目reservationVol,我希望将其包含在一个名为的mvc spring项目中reservationVolMvc.我reservationVol在eclipse上编译和测试.我也使用maven命令:mvn compile和mvn package.所有测试都成功运行.

当我尝试reservationVolMvc使用mvn编译命令进行编译时,我收到以下错误:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building reservationVolSpring 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for hani.reservationVol:reservationVol:jar:1.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.688 s
[INFO] Finished at: 2016-11-23T12:25:21+01:00
[INFO] Final Memory: 6M/77M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project reservationVolSpring: Could not resolve dependencies for project formation.addstones:reservationVolSpring:war:1.0-SNAPSHOT: Could …
Run Code Online (Sandbox Code Playgroud)

java eclipse spring maven

6
推荐指数
3
解决办法
2万
查看次数

在另一个向量<string>中找到子向量<string>

我有一个vector<string> v1 = {"A","B","C"}.我想检查v1是否includedvector<string> v2 = {"X","Y","A","B","C","D"}.

  • 我可以通过使用找到一个集合是否是另一个集合的子集STL
  • 不应对矢量进行排序
  • 如果子集发现,只有一次算法停止" if(counter == v1.size()){break;}".如果子集重复两次,你认为我应该允许它继续搜索吗?

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

float wordOrder ( std::vector<string> v1, std::vector<string> v2 )
{
  //declare a vector that will be used as an index. If we find the element of v1 in v2 we insert 1
  std::vector<int> index ( v2.size(),0 );
  int counter = 0;
  int s = v1.size();
  //check if size …
Run Code Online (Sandbox Code Playgroud)

c++ substring vector set

5
推荐指数
1
解决办法
2411
查看次数

Reccurence算法:在n次移动后找到位置

介绍

我正在尝试编写在n查找位置时引用的问题.为此,我只使用了问题中公布的公式.我没有通过公式和答案他们对我来说有点太复杂了.我在python中编写了代码,它在这里表示.

算法描述(复制)

这种舞蹈要求每个表演者遵循一系列精确的步骤:

•阶段0:首先,通过在0位设置起点来远离障碍物

•第1阶段:向前迈出一步(+1步)

•第2阶段:向后退两步(-2步)

•要遵循,通过特定的计算,每次都可以获得下一步中必须采取的步骤和方向:您在前一阶段采取的步骤数减去您采取的步骤数倒数第二阶段.

也就是说,在第3阶段,舞者必须向后退3步(-2 - 1).

在阶段3,舞者处于-4位置.

阶段(n)=阶段(n-1) - 阶段(n-2)

pos(n)= pos(n-1)+ stage(n)

在第4阶段,舞者位于-5.

在此输入图像描述


源代码

#!/usr/bin/python
if __name__=="__main__":
    s = [0, 1, -2]
    p = [0, 1, -1]
    for n in range(3, 5):
        diff = s[n - 1] - s[n - 2]
        s.append(diff)
        p.append(p[n - 1] + diff)
        print "Position at stage %s is %s" %(n, p[len(p) - 1])
Run Code Online (Sandbox Code Playgroud)

我的问题是假设我们有超过1000万个阶段.列表p和s将增长并可能导致内存问题.有没有办法解决这个问题.我找不到另一个解决方案而不是使用列表.

如果我删除第一个元素,s.pop() p.pop()那么它是一个超出范围异常的索引.这是正常的.除此之外,我无法弄清楚在哪里继续.


更新

我觉得它比较简单.

#!/usr/bin/python
if …
Run Code Online (Sandbox Code Playgroud)

python algorithm

5
推荐指数
2
解决办法
3565
查看次数

如何解决TAR:不能拒绝MKDIR许可

文件权限

我有一个文件data.tgz,我想解压缩.

-rw-r - r-- 1 用户名 20342951248 mai 18 11:50 data.tgz


目录权限

文件所在的目录

drwxrwxr-x 3用户名组4096 juin 1 17:16目录/


解压缩

当我尝试使用以下命令解压缩文件时:

tar - xzf data.tgz 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

tar: data : CANNOT MKDIR PERMISSION DENIED
tar: data/a-m-00004.nt.gz : open impossible: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当我使用时,tar -xzvf data.tgz我得到以下错误


错误

tar: data : mkdir impossible: Permission non accordée
tar: data/a-m-00013.nt.gz : open impossible: Aucun fichier ou dossier de ce type
data/a-m-00012.nt.gz
tar: data : mkdir impossible: Permission non …
Run Code Online (Sandbox Code Playgroud)

permissions tar mkdir

4
推荐指数
1
解决办法
2万
查看次数

删除结构c ++向量中的重复项

我有以下结构.我想将结构存储在矢量中.其次我想删除(context)上的重复值.我究竟做错了什么?


#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

//Structure
struct contextElement
{
  string context;
  float x;
};

int main()
{
  vector<contextElement> v1;
  v1.push_back({"1",1.0});
  v1.push_back({"2",2.0});
  v1.push_back({"1",1.0});
  v1.push_back({"1",1.0});
  //ERROR here
  auto comp = [] ( const contextElement& lhs, const contextElement& rhs ) {return lhs.context == rhs.context;};
  //Remove elements that have the same context
  v1.erase(std::unique(v1.begin(), v1.end(),comp));
  for(size_t i = 0; i < v1.size();i++)
  {
    cout << v1[i].context <<"  ";
  }
  cout << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

main.cpp | …

c++ structure vector unique duplicate-removal

3
推荐指数
1
解决办法
2988
查看次数

将 numpy 数组转换为 Matrix rpy2, Kmeans

我有一个 numpy 二维数组 self.sub,我想在 rpy2 kmeans 中使用它。k = robjects.r.kmeans(self.sub,2,20) 我总是收到以下错误:valueError:目前对该类型无能为力!我能做什么?

rpy2

2
推荐指数
1
解决办法
2231
查看次数

如何在 for 循环中使用 vstack 将 csr_matrix 矩阵附加在一起

我正在使用以下代码段将不同类型的矩阵连接csr_matrix 在一起。它基于如何展平 csr_matrix 并将其附加到另一个 csr_matrix?

#! /usr/bin/python
# -*- coding: utf-8 -*-
import re, sys
import os
import numpy

from scipy.sparse import csr_matrix
from scipy.sparse import vstack


if __name__ == "__main__": 

  centroids = []
  for i in range(0,3):
    a = csr_matrix([[i,i,i]])
    centroids = vstack((centroids, a), format='csr')

  print "centroids : " + str(centroids.shape[0]) +"  "+ str(centroids.shape[1])
Run Code Online (Sandbox Code Playgroud)

作为输出我得到

centroids : 4  3
Run Code Online (Sandbox Code Playgroud)

质心的大小应该是 3 而不是 4。我是否正确连接它们?


我尝试了以下操作,看看是否可以忽略第一行:

from sklearn.metrics.pairwise import euclidean_distances
matrix = euclidean_distances(centroids[1:][:], centroids[1:][:])
print matrix
[[ 0.          1.73205081 …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

2
推荐指数
1
解决办法
5377
查看次数