c++vector翻转
时间: 2024-11-03 07:08:40 浏览: 26
在C++中,`std::vector`是一个动态数组容器,可以很方便地进行元素的增删和访问。要翻转`vector`的内容,你可以使用多种方法:
1. **迭代器法**:
```cpp
void reverseVector(std::vector<int>& vec) {
std::reverse(vec.begin(), vec.end());
}
```
这段代码会直接对`vec`的元素从头到尾进行反向遍历,并改变它们的位置。
2. **递归法**:
```cpp
void reverseVector(std::vector<int>& vec, size_t start = 0, size_t end = vec.size()) {
if (start < end) {
std::swap(vec[start], vec[end]);
reverseVector(vec, start + 1, end - 1);
}
}
```
递归版本会逐层交换元素直到整个序列翻转。
3. **标准库算法**:
```cpp
void reverseVector(std::vector<int>& vec) {
vec.reverse();
}
```
如果你的C++版本支持STL,可以直接调用`reverse()`函数,它会修改原`vector`。
以上三种方法都可以达到翻转`vector`的效果。使用时记得确保有足够的内存空间,因为上述操作都是原地进行的。
阅读全文