导图社区 STL
STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称,STL就是C++版别人已经写好的数据结构与算法。
这是一篇关于进程IO和网络(2)的思维导图,包括:目录操作、静态库和动态库进程、线程、线程间同步与互斥机制。
这是一篇关于进程IO和网络的思维导图,包含了行缓冲:对于终端操作采用的缓冲区,全缓冲:对于文件操作采用的缓冲区,无缓中:对于终端操作出错采用的缓冲区
这是一篇关于Linux与C的思维导图,必备Linux命令和C语言基础知识总结,包括环境安装、文件和目录相关命令、vi编辑器的使用/程序的编译和调试/数据的表示等内容。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
STL
概念
STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称
STL就是C++版别人已经写好的数据结构与算法
六大组件
容器
各种数据结构,如vector、list、deque、set、map等,用来存放数据
从实现角度来看,STL容器是一种类模板
算法
各种常用的算法,如sort、find、copy、for_each(遍历)
从实现的角度来看,STL算法是一种函数模板
迭代器
迭代器是一种将operator* , operator-> , operator++,operator--等指针 相关操作予以重载的类模板
原生指针(native pointer)也是一种迭代器
所有STL容器都附带有自己专属 的迭代器
只有容器的设计者才知道如何遍历自己的元素
仿函数
仿函数的本质是一个类或者类模板
这个类或者类模板中 定义了一个成员函数,这个成员函数是()的运算符重载函数operator ()
适配器
一种用来修饰容器或者仿函数或迭代器接口的东西
空间配置器
负责空间的配置与管理。
配置器是一个实现了 动态空间配置、空间管理、空间释放的类模板
优点
高可重用性
高性能
高移植性
跨平台
常用三大组件
质变算法
是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等
非质变算法
是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻 找极值等等
将容器(container)和算法(algorithms)分开,彼此独立设计,最后 再一贴胶着剂将他们撮合在一起
常用的数据结构
数组(array),链表(list),tree(树),栈(stack),队列(queue),集合(set),映射表 (map)
分类
序列式容器
强调值的排序,序列式容器中的每个元素均有固定的位置,除非用删除或插入的操作改变这个位置。
Vector容器、Deque容器、List容器等
存储的数据不会自动排序
关联式容器
非线性的树结构,更准确的说是二叉树结构
显著特点是:在值中选择一个值作为关键字key,这个关键字对值起到索引的作用,方便查找
string容器
string容器的基本概念
string容器的常用操作
string的构造函数和基本赋值操作
string存取字符操作
string拼接操作
string查找替换及子串
string比较操作和插入删除操作、string和char的转换
string的空间问题
vector容器
vector容器的基本概念
Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新 元素。
vector容器的常用操作
vector的构造函数和基本赋值操作
vector的大小操作和数据存储操作
vector的插入和删除操作及排序
vector的空间问题
resize()函数变小时无法改变容量
reserve()函数变小时容量和实际使用都无法改变
最合适的方法:使用匿名对象,当执行完语句后,匿名对象会自动释放空间