如何用swap替换两个vector的元素
时间: 2024-09-22 21:09:30 浏览: 56
C++中vector容器使用详细说明
在C++中,如果你有两个`std::vector`并想要交换它们的内容,可以直接通过迭代器操作实现,而不需要创建额外的变量。这里是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
// 定义一个函数用于交换两个vector的内容
void swapVectors(std::vector<int>& vec1, std::vector<int>& vec2) {
if (vec1.size() != vec2.size()) {
throw std::runtime_error("Vectors must have the same size for swapping.");
}
// 使用begin()和end()获取迭代器
auto it1 = vec1.begin(), it2 = vec2.begin();
// 使用标准库的iter_swap进行元素交换
while (it1 != vec1.end()) {
std::iter_swap(it1, it2);
++it1;
++it2;
}
}
int main() {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {4, 5, 6};
std::cout << "Before swapping:\n";
std::cout << "v1: ";
for (const int& i : v1) {
std::cout << i << " ";
}
std::cout << "\nv2: ";
for (const int& i : v2) {
std::cout << i << " ";
}
// 调用swapVectors函数
swapVectors(v1, v2);
std::cout << "\nAfter swapping:\n";
std::cout << "v1: ";
for (const int& i : v1) {
std::cout << i << " ";
}
std::cout << "\nv2: ";
for (const int& i : v2) {
std::cout << i << " ";
}
return 0;
}
```
运行这段代码后,你会看到两个`std::vector`的内容已经被互换了。
阅读全文