C++用 vector 进行动态数组操作,实现插入元素、删除元素、翻转和去重等操作。
时间: 2024-12-24 08:40:24 浏览: 2
在C++中,`std::vector`是一个动态数组容器,它允许你在运行时添加或删除元素,而无需预先指定大小。以下是关于`vector`进行常见操作的简要说明:
1. 插入元素:
- `push_back(element)`:向`vector`的末尾添加新元素。
- `insert(pos, element)`:在指定位置`pos`插入元素。
2. 删除元素:
- `pop_back()`:从`vector`的末尾移除并返回最后一个元素。
- `erase(pos)`:删除从位置`pos`开始到下一个元素。
- `erase(start, end)`:删除从`start`位置到`end`位置之间的所有元素。
3. 翻转(反转顺序):
- `reverse()`:原地反转整个`vector`的内容。
- 使用迭代器也可以手动实现反转:`for (int i = 0; i < v.size() / 2; ++i) { std::swap(v[i], v[v.size() - i - 1]); }`
4. 去重:
- 可以使用`std::set`或`std::unordered_set`,因为它们不允许有重复元素,将`vector`转换成这两个集合可以达到去重的效果。
- 或者用`std::unique`和`std::remove`函数结合迭代器,对`vector`进行原地去重。
```cpp
vector<int> v;
// 插入元素
v.push_back(1);
v.insert(v.begin(), 2);
// 删除元素
v.erase(v.begin());
// 翻转
v.reverse();
// 去重
vector<int> unique_v(v.begin(), unique(std::adjacent_find(v.begin(), v.end()), v.end()));
```
阅读全文