一、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. c++ char数组初始化_c专题指针数组与指针的关联
  2. expect实现自动登录
  3. UA MATH564 概率论 QE练习题 概率极限理论
  4. NetBeans 7.4的本机Java打包
  5. iOS 的 XMPPFramework 简介
  6. python代码删掉了几行怎么撤回_仅78行代码实现微信撤回消息查看 | Python itchat
  7. 车模型一般多少钱_婚车租赁一般多少钱?最新婚车出租价格表!
  8. Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析
  9. 【学习笔记】WAMP
  10. Adobe Reader 2019 Offline Installer, Free Download - Best PDF Reader
  11. 组内连续三个或三个以上Repeated Measures ANOVA
  12. C语言中进制转换与函数
  13. 专业测试工程师浅谈功能测试用例模板设计
  14. 马斯克航天新壮举:用1分38秒炸毁火箭,实现载人舱逃逸
  15. 计算机类教学期刊,热门大学计算机教学论文参考文献 大学计算机教学核心期刊参考文献哪里找...
  16. 分布式主动感知在智能运维中的实践
  17. 蓝牙软件测试指标,蓝牙测试指标.doc
  18. python画女朋友照片_用python给女朋友照片加上个性相框,学会等着她夸你!
  19. 【项目】数仓项目(八)
  20. 2021ICPC西安邀请赛赛后总结

热门文章

  1. Arduino使用TM1637 4位数码管模块
  2. ctfshow web入门 nodejs 334-341(更新中)
  3. RAM 大全-DRAM, SRAM, SDRAM的关系与区别
  4. DROP和DELETE的区别
  5. 利用AD和AUTO CAD制作PCB电路板车间生产工序卡
  6. 什么是DCS系统?DCS和SCADA的区别
  7. 创业很难,有没有人愿意分享自己一些创业的点子,想法,尽量详细一点?
  8. 政采法规 | 中小企业划型标准规定
  9. oracle官网下载教程
  10. 1558_AURIX_TC275_RCU模块中的ESR管脚