c++自定义函数交换两个向量的值
时间: 2024-10-08 20:17:09 浏览: 42
C++ swap介绍及使用
在C++中,你可以通过定义一个接受两个向量作为参数的函数,并利用标准库提供的swap()函数或者自定义临时变量来交换两个向量的元素。这里是一个简单的例子,假设我们有一个`std::vector<int>`类型的向量:
```cpp
#include <vector>
using namespace std;
// 自定义函数交换两个向量
void swapVectors(vector<int>& vec1, vector<int>& vec2) {
// 使用内置的swap函数
if (vec1.size() != vec2.size()) {
throw runtime_error("Vectors must have the same size to be swapped.");
}
vec1.swap(vec2);
}
// 或者手动遍历并交换元素
void manualSwap(vector<int>& vec1, vector<int>& vec2) {
if (vec1.size() != vec2.size()) {
throw runtime_error("Vectors must have the same size to be swapped.");
}
for (size_t i = 0; i < vec1.size(); ++i) {
int temp = vec1[i];
vec1[i] = vec2[i]; // 交换元素
vec2[i] = temp;
}
}
int main() {
vector<int> vec1 = {1, 2, 3};
vector<int> vec2 = {4, 5, 6};
cout << "Before swapping:\n";
cout << "Vec1: ";
for (const auto& num : vec1) {
cout << num << " ";
}
cout << "\nVec2: ";
for (const auto& num : vec2) {
cout << num << " ";
}
swapVectors(vec1, vec2); // 或 manualSwap(vec1, vec2)
cout << "\nAfter swapping:\n";
cout << "Vec1: ";
for (const auto& num : vec1) {
cout << num << " ";
}
cout << "\nVec2: ";
for (const auto& num : vec2) {
cout << num << " ";
}
return 0;
}
```
在这个例子中,`swapVectors`函数使用了`swap()`函数,而`manualSwap`函数则是手动实现了元素的逐个交换。
阅读全文