Есть 2 проблемы с вашим кодом. Во-первых, любая модификация Y
не будет видна на сайте вызова, поскольку вы передаете vector
по значению. Вместо этого вам нужно передать его по ссылке.
Во-вторых, вы неправильно индексируете X
(при условии, что X
не такой большой, как Y
). Вместо этого вы можете просто push_back
значения.
Однако вы можете даже скопировать vector
s напрямую, так что вы можете сделать:
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;
, что намного удобнее для чтения.