不同大小vector swap
时间: 2023-07-25 22:35:49 浏览: 138
如果要交换的两个 vector 容器大小不同,可以使用 `vector::swap` 成员函数实现。该函数原型如下:
```c++
template<class T, class Alloc>
void vector<T,Alloc>::swap(vector<T,Alloc>& x);
```
其中,x 为要交换的另一个 vector 容器。使用该函数可以将当前 vector 容器的元素和另一个 vector 容器的元素进行交换。
示例代码如下:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec1{1, 2, 3};
vector<int> vec2{4, 5, 6, 7, 8};
cout << "Before swap: " << endl;
for (auto i : vec1) {
cout << i << " ";
}
cout << endl;
for (auto i : vec2) {
cout << i << " ";
}
cout << endl;
vec1.swap(vec2);
cout << "After swap: " << endl;
for (auto i : vec1) {
cout << i << " ";
}
cout << endl;
for (auto i : vec2) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
Before swap:
1 2 3
4 5 6 7 8
After swap:
4 5 6 7 8
1 2 3
```
可以看到,使用 `vector::swap` 成员函数可以将当前 vector 容器的元素和另一个 vector 容器的元素进行交换,即使两个 vector 容器的大小不同。
阅读全文