c++写一个自定义函数交换两个向量的值
时间: 2024-10-08 10:14:27 浏览: 36
C++ swap介绍及使用
在C++中,你可以创建一个自定义模板函数来交换两个向量的值。这里是一个简单的例子,假设我们有一个动态大小的整数向量`std::vector<int>`:
```cpp
#include <iostream>
#include <vector>
// 自定义模板函数交换两个向量
template<typename T>
void swapVectors(std::vector<T>& vec1, std::vector<T>& vec2) {
if (vec1.size() != vec2.size()) {
throw std::invalid_argument("Vectors must have the same size.");
}
T temp;
for (size_t i = 0; i < vec1.size(); ++i) {
temp = vec1[i];
vec1[i] = vec2[i]; // 交换元素
vec2[i] = temp;
}
}
int main() {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {4, 5, 6};
std::cout << "Before swapping:\n";
for (const auto& value : {v1, v2}) {
std::cout << "[ ";
for (const auto& num : value) {
std::cout << num << " ";
}
std::cout << "]\n";
}
swapVectors(v1, v2);
std::cout << "\nAfter swapping:\n";
for (const auto& value : {v1, v2}) {
std::cout << "[ ";
for (const auto& num : value) {
std::cout << num << " ";
}
std::cout << "]\n";
}
return 0;
}
```
在这个例子中,`swapVectors`函数接受两个`std::vector`类型的引用,并通过遍历它们的元素,使用临时变量来完成值的交换。注意,你需要确保传递给这个函数的向量大小相等。
阅读全文