STL学习

刷了一套面试题,发现自己在关于STL库方面的知识还是不够熟练,之前老师也就是讲一下,留下的印象也不是很深,所以决定自己梳理一下,然后有的就是直接看人家的概念什么的,我就直接把我找到的网址贴上来了,个人只挑出自己觉得需要注意的地方手打一遍加深印象,其实还是人家总结的更好更详细

http://blog.csdn.net/longshengguoji/article/details/8466118


STL底层实现:

http://blog.csdn.net/xiaominkong123/article/details/52238699

STL三个主要概念:

容器,迭代器,算法

STL最大的特点:

数据结构和算法的分离,非面向对象本质

容器三种主要类型:

序列容器,关联容器,容器适配器


序列容器:vector,deque,list

Vector:可以从后端执行快速的插入和删除,直接访问任何元素

Deque:从前面或后面执行快速的插入和删除,直接访问任何元素

List:双链表,能在任何地方执行快速的插入和删除


关联容器:set multiset map multimap

Set:执行快速搜索,元素不允许重复

Multiset:执行快速搜索,元素允许重复

Map:一对一映射,元素不允许重复,快速的基于键的搜索

Multimap:一对多映射,元素允许重复,快速的基于键的搜索


容器适配器:stack queue priority_queue

Stack:后进先出

Queue:先进先出

Priority_queue:优先级最高的元素总是最先出队


序列容器表示线性数据结构,例如向量和链表;

关联容器是非线性容器,通常能够快速找出保存在容器中的元素。这类容器能够保存值的集合或键/值对;序列容器和关联容器统称为第一类容器。

STL将堆栈和队列实现为容器适配器,使程序以一种受约束的方式看待序列容器。

STL通常可通过模板实现泛型编程,以避免继承和虚函数,获得更好的执行时性能。





迭代器简介:

你可能感兴趣的:(STL学习,stl,容器,C++)