一、容器的共通能力
1、所有容器提供的都是value语义,而非reference语义,容器执行插入元素的操作时,内部实施拷贝动作。所以STL容器内存储的元素必须能够被拷贝(必须提供拷贝构造函数);
2、每个容器都提供可返回迭代器的函数,运用返回的迭代器就可以访问元素。
3、通常STL不会丢出异常。要求使用运行者对确保传入正确的参数。
二、容器的共通操作
1、初始化
每个容器都提供了一个默认构造函数,一个拷贝构造函数。
1 list<int> l; 2 ... 3 vector<int> ivec(l.begin(), l.end());//以某个容器的元素为初值完成初始化 4 5 int array[] = {1, 2, 3, 4, 5}; 6 ... 7 set<int> iset(array, array+sizeof(array)/sizeof(array[0]));//以某个数组的元素为初值完成初始化
2、与大小相关的操作函数
1 c.size() //传回容器中的元素数量 2 c.empty)() //判断容器是否为空(相当于size() == 0,但可能更快) 3 c.max_size() //传回元素的最大可能数量
3、返回迭代器的函数
1 c.begin() //传回一个迭代器,指向第一个元素 2 c.end() //传回一个迭代器,指向最后元素的下一个位置 3 c.rbegin() //传回一个逆向迭代器,指向逆向寻访时的第一元素 4 c.rend() //传回一个逆向迭代器,指向逆向寻访时的最后一个元素的下一个位置
4、比较操作
1 c1 == c2 //判断是否c1 等于 c2 2 c1 != c2 //判断是否c1 不等于 c2,相当于!(c1 == c2) 3 c1 < c2 //判断是否c1 小于 c2 4 c1 > c2 //判断是否c1 大于 c2 5 c1 <= c2 //判断是否c1 小于等于 c2 6 c1 >= c2 //判断是否c1 大于等于 c2 7 c1 = c2 //将 c2 的所有元素指派个 c1