2018-09-26

c++ STL(标准模板库)是一套通过c++模板类实现的标准类库,提供了通用的模板和函数,功能强大,大大的提高了c++的开发效率。

c++ STL的核心主要包括三个组件:(1)容器(2)算法(3)迭代器

在c++标准中,主要包含以下13个头文件:

(1)<algorithm>:是最大的一个头文件,主要涉及比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并等操作。

(2)<deque>:双队列,连续存储的指向不同元素的指针所组成的数组。

(3)<functional>:定义了一些模板类,来声明函数对象。

(4)<iterator>:链接容器和算法的桥梁。每个容器定义了自身所专有的迭代器用以存取容器中的元素。

(5)<vector>:连续存储且数组大小不需固定的元素。

(6)<list>:双向链表

(7)<map>:由<键,值>对组成的集合,以某种作用于键对上的谓词排序。 + multimap:允许键对相等的次序的映射。

(8)<memory>:为容器分配空间 + 为某些算法执行期间产生的临时对象提供机制。

(9)<numeric>:主要提供简单数学运算在序列上的操作。

(10)<set>:由节点组成的红黑树。

(11)<utility>:很小的文件。

(12)<queue>:先进先出的队列 + 优先队列(priority_queue)

(13)<stack>:后进先出的数组

后续将通过各个头文件的学习进行学习记录。

c++ STL概述的更多相关文章

  1. 1.1 STL 概述

    综述   STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R M ...

  2. STL概述

    一.关于STL STL(Standard Template Library,标准模板库)是C++语言标准中的重要组成部分.STL 以模板类和模板函数的形式为程序员提供了各种数据结构和算法的精巧实现,程 ...

  3. C++STL——概述

    一.相关介绍 STL 标准模板库 在编写代码的过程中有一些程序经常会被用到,而且需求特别稳定,所以C++中把这些常用的模板做了统一的规范,慢慢的就形成了STL 提供三种类型的组件: 容器.迭代器和算法 ...

  4. [转载]C++STL概述

    来源:https://www.cnblogs.com/dyllove98/p/3214898.html 什么是容器 首先,我们必须理解一下什么是容器,在 C++ 中容器被定义为:在数据存储上,有一种对 ...

  5. C++ STL 概述_严丝合缝的合作者们

    1. 初识 STL 什么是STL? STL(Standard Template Library) 是C++以模板形式提供的一套标准库,提供了很多开发过程需要的通用功能模块.使用 STL ,可以让开发者 ...

  6. STL"源码"剖析-重点知识总结

    STL是C++重要的组件之一,大学时看过<STL源码剖析>这本书,这几天复习了一下,总结出以下LZ认为比较重要的知识点,内容有点略多 :) 1.STL概述 STL提供六大组件,彼此可以组合 ...

  7. 【转】三十分钟掌握STL

    转自http://net.pku.edu.cn/~yhf/UsingSTL.htm 三十分钟掌握STL 这是本小人书.原名是<using stl>,不知道是谁写的.不过我倒觉得很有趣,所以 ...

  8. 三十分钟掌握STL

    这是本小人书.原名是<using stl>,不知道是谁写的.不过我倒觉得很有趣,所以化了两个晚上把它翻译出来.我没有对翻译出来的内容校验过.如果你没法在三十分钟内觉得有所收获,那么赶紧扔了 ...

  9. 【转载】STL"源码"剖析-重点知识总结

    原文:STL"源码"剖析-重点知识总结 STL是C++重要的组件之一,大学时看过<STL源码剖析>这本书,这几天复习了一下,总结出以下LZ认为比较重要的知识点,内容有点 ...

随机推荐

  1. IDEA打包jar包

    1.点击idea左边的Maven 2.点开要打包的项目下的-->Lifecycle-->双击package 3.jar包会默认保存在项目下的target文件夹下

  2. labview出现系统998错误

    1.环境:xp,labview2015, 2.经过:初始状态正常,系统需要运行2016的打包的程序,运行不了,后下载了一个2016打包后的程序,点击安装,未提示异常.桌面添加了快捷方式,点击快捷方式, ...

  3. 使用Spring ThreadPoolTaskExecutor实现多线程任务

    我们为何使用多线程,之前已经有讲过了,为了更快的处理多个任务,分割任务,或者调用多个毫无关联的第三方服务 其实spring就提供了ThreadPoolTaskExecutor这个类来实现线程池,线程池 ...

  4. 遍历文件路径python版,java版

    python: # 获取所有txt路径列表 file_list = [] def gci(filepath): files=os.listdir(filepath) for fi in files: ...

  5. js 在echarts多条折线图数字*100 诡异出现小数

    formatter:function(params){ //数据单位格式化 ].name; //x轴名称 , l = params.length; i < l; i++) { if(params ...

  6. Codeforces 375B Maximum Submatrix 2 (DP)

    <题目链接> 题目大意:给出一个01矩阵,行与行之间可以互换位置,问能够得到最大的全1矩阵的面积. #include <bits/stdc++.h> using namespa ...

  7. BZOJ.4009.[HNOI2015]接水果(整体二分 扫描线)

    LOJ BZOJ 洛谷 又是一个三OJ rank1!=w= \(Description\) (还是感觉,为啥非要出那种题目背景啊=-=直接说不好么) 给定一棵树和一个路径集合(每条路径有一个权值).\ ...

  8. Django 启动源码

    handler = self.get_handler(*args, **options) run(self.addr, int(self.port), handler,ipv6=self.use_ip ...

  9. centos官网下载地址

    CentOS 7官方下载地址:https://www.centos.org/download/ 源自博友的博客:https://blog.csdn.net/yf9595/article/details ...

  10. JavaScript函数表达式与函数声明

    什么是函数? 函数是事件驱动或者被调用时执行的重复代码块. 作用域: 1. 全局作用域 2. 函数作用域(局部作用域) var i = 100; //全局作用域 function fun(){ var ...