第2关:STL模板之动态数组:向量vector的应用
时间: 2024-09-09 14:15:49 浏览: 55
在C++标准库中,`std::vector`是一个动态数组,它是一种非常常用的数据容器,特别适合存储元素需要频繁增删的情况。相比于固定大小的数组,`vector`能够自动调整其内部容量以适应数据的变化,不需要预先指定大小。
`vector`的主要应用包括:
1. **元素插入和删除**:由于它的动态扩容机制,向头部添加元素(`push_back`)、从头部移除元素(`pop_back`)都非常高效。而且在中间位置进行插入和删除操作也相对方便,虽然效率不如直接访问数组那样快,但比其他动态数组如链表要好得多。
2. **随机访问**:`vector`支持随机访问元素,通过索引来快速获取元素,这得益于底层的连续内存布局。对于已经排序的`vector`,甚至可以利用二分查找法快速定位元素。
3. **动态大小管理**:当你不知道数据的确切大小,或者需要根据运行时条件改变大小时,`vector`非常适合。它能自动处理内存的分配和回收,避免了手动管理内存的复杂性和风险。
4. **迭代器支持**:像其他容器一样,`vector`提供迭代器,使得遍历和操作数据变得直观。
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2); // 添加元素
for (const auto& num : vec) { // 遍历
std::cout << num << " ";
}
vec.erase(vec.begin()); // 删除第一个元素
return 0;
}
阅读全文