STL学习笔记
王凌波
积硅步以至千里!
展开
-
STL 容器 - string
3.1.1 string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:char * 是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string 类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责3.1.2 stri原创 2020-09-15 21:52:39 · 108 阅读 · 0 评论 -
STL 容器 - vector
3.2.1 vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器3.2.2 vector构造函数功能描述:创建vector容器函数原型:vector<T> v;原创 2020-09-15 22:11:17 · 185 阅读 · 0 评论 -
STL 容器 - deque
3.3.1 deque容器基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间deque容器的迭代器也是支原创 2020-09-15 22:25:11 · 193 阅读 · 0 评论 -
STL 容器 - stack
3.5.1 stack 基本概念概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 pop3.5.2 stack 常用接口功能描述:栈容器常用的对外接口构造函数:stack<T> stk; //stack采用模板类实现, stack对原创 2020-09-20 13:16:35 · 1088 阅读 · 0 评论 -
STL 容器 - queue
3.6.1 queue 基本概念概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个口。队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为。队列中进数据称为 — 入队 push队列中出数据称为 — 出队 pop3.6.2 queue 常用接口功能描述:栈容器常用的对外接口构造函数:queue<T> que;原创 2020-09-20 13:22:53 · 94 阅读 · 0 评论 -
STL 容器 - list
3.7.1 list基本概念**功能:**将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作十分方便,修改指针原创 2020-09-20 13:29:24 · 96 阅读 · 0 评论 -
STL 容器 - set/multiset
3.8.1 set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素3.8.2 set构造和赋值功能描述:创建set容器以及赋值构造:set<T> st; //默认构造函数:set(const set &st); //拷贝构造函数原创 2020-09-20 13:39:33 · 114 阅读 · 0 评论 -
STL 容器 - map/multimap
3.9.1 map基本概念简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素multimap允许容器中有重复key值元素3.9.2 map构造和赋值功能描述:对map容器进行构造和赋值操原创 2020-09-20 13:45:06 · 181 阅读 · 0 评论