将字符向量复制到另一个向量

Copy a char vector to another vector

本文关键字:向量 另一个 复制 字符      更新时间:2023-10-16

我正在尝试创建一个函数来将一个向量复制到另一个向量中:

#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;
}

当我调用该函数时,提示窗口中没有任何内容。

您的代码存在 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;

这更具可读性。