C++ STL库常用容器函数

vector(动态数组)

定义方法:

cpp

复制

cpp 复制代码
vector<int> v;                          // 空vector
vector<int> v(10);                      // 包含10个默认值的vector
vector<int> v(10, 1);                   // 包含10个值为1的元素
vector<int> v = {1, 2, 3, 4, 5};        // 初始化列表
vector<int> v2(v);                      // 拷贝构造

常用函数:

  • push_back(const T& val):在数组末尾添加元素,无返回值。

  • pop_back():删除数组最后一个元素,无返回值。

  • insert(iterator pos, const T& val):在指定位置插入元素,返回指向新元素的迭代器。

  • erase(iterator pos):删除指定位置的元素,返回指向被删元素下一个位置的迭代器。

  • clear():清空所有元素,数组变为空。

  • size():返回数组中元素的数量。

  • empty():判断数组是否为空,若为空返回 true,否则返回 false。

  • operator[](size_t n):返回指定位置的元素引用(不进行越界检查)。

  • at(size_t n):返回指定位置的元素引用(进行越界检查)。

  • front():返回第一个元素的引用。

  • back():返回最后一个元素的引用。


map(关联数组/映射)

定义方法:

cpp

复制

cpp 复制代码
map<string, int> m;                     // 空map
map<string, int> m = {{"a",1},{"b",2}}; // 初始化列表
map<string, int> m2(m);                 // 拷贝构造

常用函数:

  • insert({key, value}):插入键值对。若键已存在则不插入并返回 pair(指向该键的迭代器, false),否则插入并返回 pair(指向新元素的迭代器, true)。

  • erase(const key_type& key):删除指定键的元素,返回删除的元素数量(0或1)。

  • clear():清空所有元素。

  • find(const key_type& key):查找指定键,若存在返回指向该键的迭代器,否则返回 end()。

  • size():返回键值对的数量。

  • empty():判断map是否为空,若为空返回 true,否则返回 false。

  • operator[key]:返回键对应的值的引用,若键不存在则插入默认值。

  • count(const key_type& key):返回键的出现次数(0或1),可用于判断键是否存在。


list(链表)

定义方法:

cpp

复制

cpp 复制代码
list<int> l;                            // 空list
list<int> l(10);                        // 包含10个默认值的list
list<int> l(10, 1);                     // 包含10个值为1的元素
list<int> l = {1, 2, 3, 4, 5};          // 初始化列表
list<int> l2(l);                        // 拷贝构造

常用函数:

  • push_back(const T& val):在链表尾部添加元素,无返回值。

  • push_front(const T& val):在链表头部添加元素,无返回值。

  • pop_back():删除链表最后一个元素,无返回值。

  • pop_front():删除链表第一个元素,无返回值。

  • insert(iterator pos, const T& val):在指定位置前插入元素,返回指向新元素的迭代器。

  • erase(iterator pos):删除指定位置的元素,返回指向被删元素下一个位置的迭代器。

  • clear():清空所有元素。

  • size():返回元素的数量。

  • empty():判断list是否为空,若为空返回 true,否则返回 false。

  • front():返回第一个元素的引用。

  • back():返回最后一个元素的引用。


queue(队列,容器适配器)

定义方法:

cpp

复制

cpp 复制代码
queue<int> q;                           // 默认使用deque作为底层容器
queue<int, list<int>> q2;               // 指定使用list作为底层容器

常用函数:

  • push(const T& val):将元素添加到队尾,无返回值。

  • pop():移除队首元素,无返回值。

  • front():返回队首元素的引用。

  • back():返回队尾元素的引用。

  • size():返回队列中元素的数量。

  • empty():判断队列是否为空,若为空返回 true,否则返回 false。


stack(栈,容器适配器)

定义方法:

cpp

复制

cpp 复制代码
stack<int> s;                           // 默认使用deque作为底层容器
stack<int, vector<int>> s2;             // 指定使用vector作为底层容器

常用函数:

  • push(const T& val):将元素压入栈顶,无返回值。

  • pop():移除栈顶元素,无返回值。

  • top():返回栈顶元素的引用。

  • size():返回栈中元素的数量。

  • empty():判断栈是否为空,若为空返回 true,否则返回 false。

相关推荐
黎雁·泠崖几秒前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_763472461 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
TechWJ1 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
qq_12498707531 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.1 小时前
Day06——权限认证-项目集成
java
瑶山1 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
abluckyboy2 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
lly2024062 小时前
C++ 文件和流
开发语言
2301_818732062 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea