c++ vector 拷贝
时间: 2023-10-25 21:09:44 浏览: 57
在C++中,vector是一个构造对象,不能直接使用=符号进行复制,必须迭代每个元素来复制。或者重载=操作符。以下是几种实现用于把一个vector复制给另一个vector的方法:
1. 声明一个新的vector并将其初始化为另一个vector:vector<int> v1(v2);
2. 使用swap函数进行赋值:vector<int> v1(); v1.swap(v2); //将v2赋值给v1,此时v2变成了v1
3. 使用函数assign进行赋值:vector<int> v1(); v1.assign(v2.begin(), v2.end()); //将v2赋值给v1
4. 使用循环语句赋值,效率较差:vector<int>::在C++中,vector是一个构造对象,不能直接使用=符号进行复制,必须迭代每个元素来复制。或者重载=操作符。以下是几种实现用于把一个vector复制给另一个vector的方法:
1. 声明一个新的vector并将其初始化为另一个vector:vector<int> v1(v2);
2. 使用swap函数进行赋值:vector<int> v1(); v1.swap(v2); //将v2赋值给v1,此时v2变成了v1
3. 使用函数assign进行赋值:vector<int> v1(); v1.assign(v2.begin(), v2.end()); //将v2赋值给v1
4. 使用循环语句赋值,效率较差:vector<int>::iterator it; //声明迭代器 for(it = v2.begin(); it != v2.end(); ++it) { //遍历v2,赋值给v1 v1.push_back(*it); }
注意,以上方法都是针对vector<int>类型的,如果是其他类型的vector,需要相应地进行修改。