一、STL容器概述

C++ STL (Standard Template Library标准模板库)是通用类模板和算法的集合,它给我们提供了一些标准的数据结构的实现如queues(队列), lists(链表), 和 stacks(栈)等。在我们使用C++编程时经常会使用到STL容器,非常简单也很方便。

STL的容器可以分为以下三个大类:

顺序结构:

Vectors(动态数组)

Lists(链表)

Double Ended Queues(双向队列)

常用函数:

在最后添加一个元素 push_back()
移除最后一个元素 pop_back()
插入元素 insert()

删除指定元素erase()

容器适配器:

Stacks(栈)

Queues(队列)

Priority Queues(优先队列)

常用函数:

增加元素 push()
移除元素 pop()

联合容器:

Bitsets

Maps

MultiMaps

Sets

MultiSets

常用函数:

插入元素:insert()
删除元素:erase()

我们程序员使用复杂数据结构的最困难的部分已经由STL完成. 如果我们想使用包含int数据的stack, 我们只要写出如下的代码:

stack<int> myStack;

接下来, 我们只要简单的调用 push() 和 pop() 函数来操作栈. 借助 C++ 模板的威力, 他可以指定任何的数据类型,不仅仅是int类型.  STL stack实现了栈的功能,而不管容纳的是什么数据类型。

二、STL容器汇总

【C++ STL 温故而知新 001】vector容器和iterator迭代器

三、STL容器比较

  vector deque list set multiset map multimap
名称 向量容器 双向队列容器 列表容器 集合 多重集合 映射 多重映射

内部数

据结构

连续存储的数组形式(一端开口的组)

连续或分段连续存储数组(两端

开口的数组)

双向环状链表 红黑树(平衡检索二叉树) 红黑树 红黑树 红黑树
             
头文件 #include <vector> #include <deque> #include <list> #include <set> #include <set> #include <map> #include <map>
操作元素的方式 下标运算符:[0](可以用迭代器,但插入删除操作时会失效)

下标运算符或迭代器

只能用迭代器(不断用变量值来递推新值,相当于指针),不支持使用下标运算符

迭代器 迭代器 迭代器 迭代器
插入删除操作迭代器是否失效 插入和删除元素都会使迭代器失效 插入任何元素都会使迭代器失效。删除头和尾元素,指向被删除节点迭代器失效,而删除中间元素会使所有迭代器失效 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 插入,迭代器不会失效。删除,指向被删除节点迭代器失效 插入,迭代器不会失效。删除,指向被删除节点迭代器失效
  vector deque list set multiset map multimap
名称 向量容器 双向队列容器 列表容器 集合 多重集合 映射 多重映射

特点

增加和获取元素效率

很高,插入和删除的

效率很低

增加和获取元素效率

较高,插入和删除的

效率较高

增加和获取元素效率

很低,插入和删除的

效率很高

1.键(关键字)和值(数据)相等(就是模版只有一个参数,键和值合起来)

2.键唯一

3.元素默认按升序排列

1.键和值相等

2.键可以不唯一

3.元素默认按升序排列

1.键和值分开(模版有两个参数,前面是键后面是值)

2.键唯一

3.元素默认按键的升序排列

1.键和值分开

2.键可以不唯一

3.元素默认按键的升序排列

定义容器

vector<string> book(50); deque<string> book(50); list<string> book; set<string> book; multiset<string> book; map<int,string> book; multimap<int,string> book;

C++ 标准模板库(STL)汇总相关推荐

  1. C++ 标准模板库(STL)

    C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...

  2. c++标准模板库STL【快速查找】【最全】【常用】【语法】

    c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法         vector- 变长数组         set-内部自动有序且不含重复元素     ...

  3. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解

    c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...

  4. 13 标准模板库STL【C++】

    13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...

  5. 第十章 标准模板库STL

    第十章 标准模板库STL 因为是在复习时重写的,无法在PTA上验证,编程题格式可能有误. 判断题 1.可以通过下标随机访问向量vector中的元素.(T) 2.当向量对象的内存用完之后,就会产生越界错 ...

  6. 标准模板库STL(Standard Template Library)

    标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...

  7. C++中标准模板库STL基本概念

    0. 前言 C++语言的一大优势就是便于软件的重用,而重用体现在两方面: 1. 面向对象思想:继承和多态,标准类库 2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库 ...

  8. 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)

    欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 ​ 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...

  9. C++ ——模板 标准模板库STL

    C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...

最新文章

  1. ffmpeg architecture(中)
  2. Linux【命令】修改文件内容
  3. 服务器组装 华硕主板,专业组装服务器 华硕主板P9D-C/4L热销
  4. 卖shell看站什么意思_粤语俚语卖咸鸭蛋是什么意思?
  5. redis cluster集群模式简述
  6. Oracle学习 实战心得总结
  7. PASCAL VOC2012数据集分析
  8. 移动硬盘连接计算机接口类型,移动硬盘数据线接口类型有哪几种-单usb接口
  9. 太牛了!阿里p8全面透彻剖析《Netty权威指南》,程序员必看!
  10. icom对讲机写频线定义_ICOM对讲机的常见故障和使用中的问题
  11. 数据库性能优化的五种方案
  12. 南京计算机徐宪忠,nakaga
  13. html tbody增加行,实现所有行变色,所有行删除。给出的结构中少了tbody,加上就可以了。...
  14. 【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
  15. TiDB 实战优化之 SQL 常见问题与优化案例
  16. 实验一:inode耗尽导致磁盘故障
  17. 高性能计算机储存部件硬盘,为啥电脑换了固态硬盘会变快 它比机械盘强在哪?...
  18. 零钱通项目(两个版本)含思路详解
  19. 九个特别的工作网站,开发人员的工具箱,可以拥有很多的使用资源,节省大量的时间,并提升工作效率
  20. F28335第五篇——EALLOW和EDIS

热门文章

  1. Arduino实时时钟设计(TM1637数码管显示)
  2. 使用MSHTML解析HTML代码
  3. STM32使能IIC驱动电流检测芯片INA226
  4. 全国计算机三级网络技术电子版,全国计算机三级网络技术最新版笔试电子教材(完全免费版).doc...
  5. RocketMQ Web控制台监控界面介绍+部署
  6. Cocos2d的ChipMunk
  7. Ti 官方文档阅读笔记
  8. Andoird conflicts with another tag that has the same ID
  9. PCA降维方法及在ATT人脸数据集的应用实例
  10. 一.JavaWeb学习路线