C++ STL入门教程:vector, deque, list解析

需积分: 3 1 下载量 109 浏览量 更新于2024-09-11 收藏 154KB DOC 举报
"STL基础学习" STL(Standard Template Library,标准模板库)是C++编程语言中的一部分,它提供了一系列高效且可复用的数据结构和算法。本篇主要介绍STL中的三种序列式容器:vector、deque和list。 1. **vector的用法** - **定义**:vector是一个动态数组,其大小可以在运行时动态调整。它可以像普通数组一样通过索引访问元素。 - **创建**:如代码所示,`vector<int> vec(a, a+6)` 使用数组a的元素初始化vector。 - **操作**:`push_back()` 在vector末尾添加元素,`insert()` 可以在任意位置插入元素。例如,`vec.insert(vec.begin(), 89)` 将89插入到vector开头。 - **遍历**:通过迭代器`vector<int>::size_type i; for(i=0; i<vec.size(); i++)` 遍历并输出vector的所有元素。 2. **deque的用法** - **特性**:deque(双端队列)与vector类似,但支持在两端进行快速插入和删除操作。 - **创建**:`deque<float> coll;` 创建一个空的浮点数deque。 - **操作**:`push_front()` 在deque前端添加元素,`push_back()` 在尾部添加元素。例如,`coll.push_front(i*1.1);` 向deque前端添加元素。 - **遍历**:通过循环遍历deque,如`for(i=0; i<coll.size(); i++)` 输出deque中的所有元素。 3. **list的用法** - **定义**:list是一个双向链表,不连续存储元素,而是通过节点链接。 - **操作**:list的迭代器允许在链表中向前或向后移动。`list<int>::iterator` 定义迭代器,可用于操作链表。 - **成员函数**:`front()` 返回链表的第一个元素,`pop_front()` 删除第一个元素。 - **插入与删除**:list支持在任何位置插入和删除元素,这在链表结构中通常比在动态数组中更高效。 STL容器的选择通常取决于特定需求。vector适合需要随机访问和快速访问元素的场合,deque适合在两端频繁插入和删除元素,而list则在需要频繁插入和删除中间元素时更有优势。此外,STL还提供了其他容器,如set、map等,以及算法和迭代器等工具,它们共同构成了强大的编程工具集。学习和掌握STL是提高C++编程效率和代码质量的关键步骤。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部