将char向量复制到另一个向量

时间:2020-06-16 16:35:21

标签: c++ vector char

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

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

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

1 个答案:

答案 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;

更具可读性。

相关问题