之前,我对stl的态度有些不以为然,直到面试多家c++开发岗位未果后,我才真正重视stl这个东西。
于是翻阅大量的博客,打算好好的学习stl,然而,大多数博客说得都比较零碎。后来,我总算找到了一个把stl说得很详细且浅显易懂的视频网站,现在,我将他推荐给大家。网址:https://www.bilibili.com/video/av45108908
看完视频之后,我打算写些东西巩固下。
在STL中,分为6大部件:
(1)分配器:其作用是用来给容器分配内存空间的。
(2)容器:STL主角之一,用来存储数据。STL中,包含这几个容器:
a、顺序容器:array,vector,deque,list,forward_list;
b、关联容器:set,map,multiset,multimap,unordered_set,unordered_map,unordered_multiset,unordered_multimap;
(3)迭代器:STL主角之一,算法不会直接操作容器,而是通过容器的迭代器对其进行操作,所以说,迭代器是容器和算法之间的桥梁。
(4)算法:STL主角之一,对容器中的数据进行一些特殊的操作。比如:复制,排序等。
(5)仿函数:用来协助算法操作容器的像函数的类。主要是在类中重载了"()"运算符,让其调用看上去像是一个函数。
(6)适配器:包含三种适配器,分别如下:
a.容器适配器:基于已有容器开发的具有某些独特行为的容器,比如:stack和queue。
b.迭代器适配器:基于已有迭代器开发的具有某些独特行为的迭代器,比如:insert_iterator,reverse_iterator。
c.仿函数适配器:基于已有仿函数开发的具有某些独特行为的仿函数,比如:bind2nd,bind,not1。
更多详细的STL操作和原理,在后面的章节中我会细细讲解,若有错误,欢迎大家指正。