std::vector 反序
时间: 2024-10-19 08:01:44 浏览: 37
deserialize-test:反序列化漏洞学习记录
`std::vector` 是 C++ 标准库中的动态数组容器,它允许你在运行时添加、删除元素。如果你想反序 `std::vector` 的内容,有几种常见的方法:
1. **直接迭代**:
使用范围-based for循环或者从后向前遍历 vector,然后利用其提供的随机访问功能,将元素逐个插入到前面。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int i = vec.size() - 1; i >= 0; --i) {
vec.push_back(vec[i]); // 将元素移到末尾再移除
}
```
2. **使用 `reverse_iterator`**:
C++ 提供了 `std::reverse_iterator`,可以轻松地反转容器的内容。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
std::reverse(vec.begin(), vec.end());
```
3. **使用算法**:
如果你的 C++ 版本支持 C++17 或更高版本,可以直接使用 `std::reverse` 算法。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
std::reverse(vec.begin(), vec.end());
```
阅读全文