STL主要包括容器、迭代器和算法3大部分。STL中其他的内容如算法等,都是围绕容器和迭代器来实现。常用的容器类包括string类、vector容器、list容器和map容器等.
string类用于字符串的处理,包括常用的字符串操作,如赋值、复制、粘贴、删除字符以及替换字符等 ,使用string类中的成员函数可以直接的替换原来的库函数,而重载的运算符能比库函数更加方便地处理字符串。
string类的简单使用
利用string中的库函数来操作字符串
vector容器是标准模板库的一种,用来存储多种数据结构和算法,其中包括相应的模板和函数,vector只能使用连续的内存空间进行存储,如果随着存储内容的增多而预定的存储空间不足时,需要进行内存空间的再次分配。vector容器用于从后面的插入或删除数据,并且容器中的元素只能存储与连续的存储区间,能够直接的访问任何元素。
list容器为双向链表容器,双向链表由一个个节点组成,每一个节点包含一个前驱指针和后继指针和一个数据域,列表可以实现在任意位置进行元素的插入和删除操作,但不支持随机存取。
map容器的每一个节点包括两个部分,一部分为具体存储的数据,一部分是用于排序的关键字,关键字必须在容器中唯一存在,关键字用自动的排序,与容器的具体内容无关。只要用于一对多的映射,可以实现基于关键字的快速查找,但是容器中不允许出现重复的关键字。
deque容器适合从两端插入数据。
在STL中,迭代器从根本上来说,就是指针的一种,在容器和算法中充当着桥梁的作用,是STL泛型库中最和核心的一个组成部分,每一中容器都需要定义一种对应的迭代器,用来遍历容器中的数据.迭代器一般和对应的容器一起使用,用于处理容器中的元素,还可以自增(自减)运算符指向下一个,或者上一个元素。
迭代器在处理容器中的数据时,一般要通过容器中的begin()函数和end()函数来确定数值的范围。上面的例子用到了迭代器,这里就不举例子了。