顺序容器的基本操作

1.初始化

C<T> c;              // 创建一个名为c的空容器。C是容器类型名,如vector,T是元素类型,如int或string。适用于所有容器。

C c(c2);              // 创建容器c2的副本c;c和c2必须具有相同的容器类型,并存放相同类型的元素。适用于所有容器。

C c(b, e);           // 创建c,其元素是迭代器b和e表示的范围内元素的副本。适用于所有容器。

C c(n, t);             // 用n个值为t的元素创建容器c,其中值t必须是容器类型C的元素类型的值,或者是可转换为该类型的值。只适用于顺序容器。

C c(n);                // 创建有n个值初始化元素的容器c。只适用于顺序容器。

 

2.beginend成员

c.begin();           // 返回一个迭代器,它指向容器c的第一个元素。

c.end();              // 返回一个迭代器,它指向容器c的最后一个元素的下一位置。

c.rbegin();          // 返回一个逆迭代器,它指向容器c的最后的一个元素。

c.rend();             // 返回一个逆迭代器,它指向容器c的第一个元素前面的位置。

 

3.添加元素

c.push_back(t);          // 在容器c的尾部添加值为t的元素。返回void类型。

c.push_front(t);          // 在容器c的前端添加值为t的元素。返回void类型。只适用于listdeque容器类型。

c.insert(p, t);               // 在迭代器p所指向的元素前面插入值为t的新元素。返回指向新添加元素的迭代器。

c.insert(p, n, t);           // 在迭代器p所指向的元素前面插入n个值为t的新元素。返回void类型。

c.insert(p, b, e);          // 在迭代器p所指的元素前面插入由迭代器b和e标记的范围内的元素。返回void类型。

 

4.容器大小

c.size();                       // 返回容器c中的元素个数。返回类型为c::size_type。

c.max_size();             // 返回容器c可容纳的最多元素个数。返回类型为c::size_type。

c.empty();                   // 返回标记容器大小是否为0的布尔值。

c.resize(n);                 // 调整容器c的长度大小,使其能容纳n个元素。如果n<c.size(),则删除多出来的元素;否则,添加采用值初始化的新元素。

c.resize(n, t);              // 调整容器c的大小,使其能容纳n个元素。所有新添加的元素值都为t。

 

5.访问元素

c.back();             // 返回容器c的最后一个元素的引用。如果c为空,则该操作未定义。

c.front();             // 返回容器c的第一个元素的引用。如果c为空,则该操作未定义。

C[n];                    // 返回下标为n的元素的引用。如果n<0或n>=c.size(),则该操作未定义。只适用于vector和deque容器。

c.at(n);               // 返回下标为n的元素的引用。如果下标越界,则该操作未定义。只适用于vector和deque容器。

 

6.删除元素

c.erase(p);                  // 删除迭代器p所指的元素。返回一个迭代器,它指向被删除元素后面的元素。如果p指向容器内的最后一个元素,则返回的迭代器指向容器的超出末端的下一个位置。如果p本身就是指向超出末端的下一位置的迭代器,则该函数未定义。

c.erase(b, e);              // 删除迭代器b和e所标记的范围内所有的元素。返回一个迭代器,它指向被删除元素段后面的元素。如果e本身就是指向超出末端的下一位置的迭代器,则返回的迭代器也指向容器的超出末端的下一位置。

c.clear();                      // 删除容器c内的所有元素。返回void。

c.pop_back();             // 删除容器c内的最后一个元素。返回void。如果c为空容器,则该函数未定义。

c.pop_front();             // 删除容器c的第一个元素。返回void。如果c为空容器,则该函数未定义。只适用于listdeque容器。

 

7.赋值

c1=c2;                         // 删除容器c1的所有元素,然后将c2的元素赋值给c1。c1和c2的类型(包括容器类型和元素类型)必须相同。

c1.swap(c2);              // 交换内容:调用完该函数后,c1中存放的是c2原来的元素,c2中存放的则是c1原来的元素。C1和c2的类型必须相同。该函数的执行速度通常要比将c2的元素复制到c1的操作要快。

c.assign(b, e);            // 重新设置c的元素:将迭代器b和e标记的范围内所有的元素复制到c中。b和e必须不是指向c中元素的迭代器。

c.assign(n, t);             // 将容器c重新设置为存储n个值为t的元素。

 

posted @ 2015-05-29 16:03  -学以致用-  阅读(207)  评论(0编辑  收藏  举报