[英]Why can't I copy this one vector to another?
编译器在“extra = lines[i]”行中为我的反向向量 function 显示以下错误消息。我想使用赋值运算符将一个向量复制到另一个向量。
|与 'operator=' 不匹配(操作数类型为 'std::vectorstd::__cxx11::basic_string<char >' 和 '__gnu_cxx::__alloc_traitsstd::allocator<std::__cxx11::basic_string<char >, std: :__cxx11::basic_string >::value_type' {aka 'std::__cxx11::basic_string'})
代码:
void reverse_vector(vector<string>& lines){
vector<string> extra;
int i;
for(i = 0; i < lines.size(); i++){
extra = lines[i];
lines[i] = lines[lines.size() - 1 - i];
lines[lines.size() - 1 - i] = extra;
cout << lines[i] << " ";
cout << endl;
}
}
extra
应该具有lines[i]
的类型。 所以它应该只是std::string extra
。std::swap()
来交换东西。 它更容易阅读。void reverse_vector(vector<string>& lines) {
for(int i = 0; i < lines.size() / 2; i++) {
string extra = lines[i];
lines[i] = lines[lines.size() - 1 - i];
lines[lines.size() - 1 - i] = extra;
}
}
void reverse_vector(vector<string>& lines) {
for(int i = 0; i < lines.size() / 2; i++)
std::swap(lines[i],
lines[lines.size() - 1 - i]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.