c++vector怎么复制
时间: 2024-04-13 13:23:17 浏览: 12
在C++中,可以使用以下几种方式来复制一个vector:
1. 使用赋值运算符(=):可以将一个vector的内容复制给另一个vector。例如:
```
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = vec1; // 使用赋值运算符进行复制
```
2. 使用构造函数:可以通过将一个vector作为参数传递给另一个vector的构造函数来进行复制。例如:
```
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2(vec1); // 使用构造函数进行复制
```
3. 使用assign()函数:可以使用assign()函数将一个vector的内容复制给另一个vector。例如:
```
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2;
vec2.assign(vec1.begin(), vec1.end()); // 使用assign()函数进行复制
```
需要注意的是,以上方法都是浅拷贝,即只复制了vector对象本身,而不是其中的元素。如果需要深拷贝,即同时复制vector中的元素,可以使用以下方式:
1. 使用循环遍历并逐个复制元素:可以使用for循环或者其他迭代方式遍历源vector,并将每个元素逐个添加到目标vector中。例如:
```
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2;
for (int i = 0; i < vec1.size(); i++) {
vec2.push_back(vec1[i]); // 逐个复制元素
}
```
2. 使用insert()函数:可以使用insert()函数将源vector中的元素插入到目标vector中。例如:
```
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2;
vec2.insert(vec2.end(), vec1.begin(), vec1.end()); // 将源vector中的元素插入到目标vector中
```