C++ STL 中的 vector 操作详解
需积分: 33 56 浏览量
更新于2024-10-09
1
收藏 4KB TXT 举报
"本文主要讨论C++中的STL容器,特别是vector、list和deque的使用。我们将详细探讨vector的操作,包括初始化、插入与删除元素、访问元素以及迭代器的使用。然后简要介绍list容器的主要操作。"
在C++的STL(标准模板库)中,vector是一种动态数组,它提供了高效且灵活的数组操作。vector的主要优点在于它的随机访问能力,允许快速访问任意位置的元素。
1. vector的初始化:
- `vector<string> vec;` 创建一个空的string类型的vector。
- `vector<int> vec(10);` 初始化一个包含10个默认值(0)的int类型vector。
- `vector<float> vec(10, 0.5);` 初始化一个包含10个值为0.5的float类型vector。
2. vector的基本操作:
- `push_back()` 在vector末尾添加一个元素。
- `pop_back()` 删除vector的最后一个元素。
- `size()` 返回vector中元素的数量。
- 访问元素:通过索引`vec[index]`可以直接访问,但要注意越界问题。
- 插入和删除元素:除了`push_back()`和`pop_back()`外,还可以使用`insert()`和`erase()`函数在指定位置插入或删除元素。
3. 迭代器的使用:
- `vector<T>::iterator iter;` 声明一个指向vector中元素的迭代器。
- `begin()` 返回指向vector第一个元素的迭代器。
- `end()` 返回指向vector最后一个元素之后的迭代器(表示容器的结束位置)。
- `erase(iter)` 使用迭代器删除元素,迭代器会失效,需要更新。
- 迭代器可以用于遍历和修改vector的所有元素。
4. list容器:
- list是双向链表实现的容器,它支持快速的插入和删除,但在随机访问元素时效率较低。
- `push_back()` 和 `pop_back()` 与vector类似,但它们分别在list的末尾添加或删除元素。
- `push_front()` 在list的开头添加元素。
- `pop_front()` 删除list的第一个元素。
- list的迭代器也支持`++`和`--`操作,但不支持随机访问。
在实际编程中,选择vector还是list取决于具体的需求。如果需要频繁地在容器的两端添加或删除元素,list可能是更好的选择;如果需要快速访问任意位置的元素,vector则更合适。deque(双端队列)是另一种容器,它结合了vector和list的优点,可以在两端进行快速插入和删除,同时支持随机访问。
2008-11-29 上传
2024-06-06 上传
2024-05-02 上传
2020-12-26 上传
点击了解资源详情
2023-06-10 上传
2023-07-25 上传
2023-08-21 上传
2023-11-10 上传