C++ STL 中的 vector 操作详解

需积分: 33 9 下载量 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的优点,可以在两端进行快速插入和删除,同时支持随机访问。