++ first; }
c++语言允许两个容器进行其元素类型定义的关系运算。 顺序容器的大小操作 见:15顺序容器的大小操作
c.size()---返回类型为c::size_type c.max_size() c.empty() c.resize(n) c.resize(n,t) resize操作如果当前容器的长度大于新的长度值,则容器后面的元素会被删除;如果当前的容器长度小于新的长度值,则系统会在容器后部添加新元素。 访问顺序容器内元素的操作 见 16 访问顺序容器内元素的操作
if (!ilist.empty()) {
list
list
//两条语句均指向同一个元素
删除顺序元素内元素的操作 见 :17 删除顺序元素内元素的操作
c.erase(p) c.erase(b, e) c.clear() c.pop_back() c.pop_front()----只适用于list或deque容器。
pop_front()和pop_back()函数的返回值并不是删除的元素的元素值,而是void,要获取删除
的元素值,则必须在删除元素之前调用front或back函数。
使用erase操作时,必须在容器中找到要删除的元素,寻找一个指定元素最简单的方法是使用标准库中的find函数或其他泛型算法。使用find时,必须将algorithm头文件包含进来,find函数需要一对标记查找范围的迭代器以及一个在该范围内查找的值作参数,查找完成后,返回一个迭代器,它指向具有指定值的第一个元素,或超出末端的下一位置。 string searchValue(“raoyi”);
list
if (iter != slist.end()) //在删除元素之前,必须保证迭代器是不是end迭代器 slist.earse(iter);
删除容器内的所有元素: slist.clear();
slist.earse(slist.begin(),slist.end()); 删除部分元素:
list
elem1 = find(slist.begin(), slist.end(), val1); elem2 = find(elem1, slist.end(), val2); slist.earse(elem1, elem2);
赋值:见 18 顺序容器的赋值操作
c1 = c2 c1.swap (c2) c.assign(b ,e) c.assign (n ,t) sliat1.assign(slist2.begin(), slist2.end()); slist.assign(10, “raoyi!”);
vector类提供了两个成员函数:capacity(容量)和reserve,使程序员可以与vector容器内存分配的实现部分交互工作。capacity操作获取容器需要分配更多的存储空间之前能够存储的元素总数,而reserve操作则告诉vector容器应该预留多少个元素的存储空间。 ivec.capacity() //获得容器的容量 容量和size()不一样 当vector容器不得不重新分配新的存储空间时,以加倍当前容量的分配策略实现重新分配。 选择容器的提示:见19 选择容器的提示
string支持的容器操作 见 20 string支持的容器操作
构造string对象的其他方法 见 21 构造string对象的其他方法。
string与容器共有的和独有的功能 见 22 string与容器共有的和独有的功能
只适用于string类型的操作 见 23 只适用于string类型的操作
修改string对象的操作 见 24 修改string对象的操作
tring类型的查找操作 见 25 string类型的查找操作
string操作的返回值类型是string::size_type,请使用该类型的对象存储find的返回值。 string类型的compare操作 见26 string类型的compare操作