我正在尝试创建一个将向量复制到另一个向量中的函数:
#include <iostream>
#include <vector>
int clone(std::vector <char> X, std::vector <char> Y){
for(int i(0);i<X.size();i++){
Y[i]=X[i];
}
return 0;
}
当我调用该函数时,提示窗口上没有任何内容。
答案 0 :(得分:2)
您的代码有2个问题。第一个是对Y
的任何修改在呼叫站点将不可见,因为您是按值传递vector
的。相反,您需要通过引用传递它。
第二,您索引X
的索引不正确(假设X
不如Y
大)。相反,您可以只push_back
个值。
但是,您甚至可以直接复制vector
,因此您可以这样做:
int clone(std::vector <char> const &X, std::vector <char> &Y){
Y = X;
return 0;
}
在这一点上,拥有命名函数是毫无意义的,因为它没有做类似的事情:
std::vector<char> y;
clone(x, y);
您可以简单地做到:
auto y = x;
更具可读性。