vector如何交换两个数组的至
时间: 2024-09-22 11:07:06 浏览: 29
在C++中,如果你有一个`vector`容器并且想要交换两个数组(假设这两个数组也是`vector`),你可以直接操作元素来完成这个任务。但是,由于`vector`本身是一个动态数组,我们不需要像传统数组那样用临时变量来交换值。下面是一个简单的例子:
```cpp
#include <iostream>
#include <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 to be swapped.");
}
for (size_t i = 0; i < vec1.size(); ++i) {
// 通过索引直接交换两个向量的元素
int temp = vec1[i];
vec1[i] = vec2[i]; // 将 vec2 的第 i 个元素赋给 vec1
vec2[i] = temp; // 将 vec1 的第 i 个元素赋给 vec2
}
}
int main() {
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = {4, 5, 6};
std::cout << "Before swapping:\n";
for (const auto& num : vec1) {
std::cout << num << ' ';
}
std::cout << "\n";
swapVectors(vec1, vec2);
std::cout << "After swapping:\n";
for (const auto& num : vec1) {
std::cout << num << ' ';
}
std::cout << "\n";
return 0;
}
```
在这个示例中,`swapVectors`函数接收两个`vector`的引用,并遍历它们,逐个交换对应的元素。注意,如果两个`vector`的大小不相等,程序会抛出一个异常。
如果你想交换的是指针指向的数组而不是`vector`,则需要确保指针的有效性和数组大小匹配。
阅读全文