STL分为容器、分配器、算法、迭代器、适配器、仿函数六大组件。
容器用来放数据,是各种数据结构的封装,它让我们不再需要进行内存分配操作,该操作将由分配器取代之。
算法是专门对容器操作的一组模板函数,它独立出来,通过模板变成一堆全局的通用操作。按照面向对象思想,应当将数据以及对应的一组操作统统封装入这个容器类中,这样每个容器就有自己独有的操作,但STL在这里采用了泛型编程的思想,将算法独立出来,编程一组通用操作,这就是泛型编程(主要就是用模板进行编程)与面向对象的区别。
迭代器是一种泛化的指针的设计,它同时是算法操作容器的桥梁,所有算法直接操作的对象其实是迭代器,而每个容器都有自己的迭代器。
仿函数的作用类似一种函数,是函数的模仿,后面再补充。。。
适配器是对容器、迭代器、仿函数的一种转换。
”前闭后开区间“,begin()指向第一个元素,但是注意end()指向的是容器最后一个元素的下一个。容器不一定是一个连续空间,在遍历容器的时候,一般将iterator与end()比较作为循环结束条件。