C++ 顺序容器

  类型

  vector:可变大小数组。支持快速随机访问。在尾部之外插入或删除较慢

  deque:双端队列。支持快速随机访问,在头尾插入和删除快

  list:双向链表。只支持双向顺序访问。插入删除快

  forward_list:单向链表,仅能单向顺序访问

  array:固定大小数组。支持快速访问。不能添加或删除。定义时应指定容器大小,如:array<int , 10>

  string:与vector类似,保存字符。

  assign赋值

  seq.assign(b,e);  //b和e为迭代器,将seq替换为b和e所表示范围中的元素,不能指向seq中元素

  seq.assign(il);  //将seq中元素替换为il中元素

  seq.assign(n,t); //将seq中元素替换为n个值为t的元素

  添加元素

  push_back(t)  //在尾部创建一个值为t的元素,返回void

  emplace_back(args)  //在尾部创建一个由args创建的元素,返回void

  push_front(t)  //在头部创建,vector和string不支持

  insert(p,t)  //在迭代器p指向的元素之前创建一个值为t的元素,返回新添加的元素的迭代器

  emplace(p,args)  //同上

  insert(p,n,t)  //在迭代器p之前插入n个值为t的元素,返回指向新添加的第一个元素的迭代器

  insert(p,b,e)  //将b和e指定范围内元素插入到迭代器p指向的元素之前,b和e不能指向自己的元素。

          返回指向新添加的第一个元素的迭代器

  insert(p,il)  //il为花括号包围的元素值列表,将这些给定值插入到p之前,返回新添加的第一个迭代器。

  删除元素

  pop_back()   //删除尾元素,若列表为空则函数行为未定义,返回void

  pop_front()  //删除首元素,vector和string不支持

  erase(p)  //删除迭代器p所指定的元素,返回一个纸箱被删元素之后元素的迭代器,

        //若p指向尾元素,则返回尾后迭代器。若p为尾后迭代器,则函数行为未定义

  erase(b,e)  //删除迭代器b和e所指定范围内的元素,返回一个指向最后一个被删元素的迭代器。

        //若e为尾后迭代器,则返回尾后迭代器

  clear()  //清空容器,返回void

  单向链表操作

  before_begin()  //返回首前迭代器,即链表头指针

  cbefore_begin()  //返回const类型首前迭代器

  insert_after(p,n,t)  //在迭代器p后插入n个元素t,n可以不用,返回一个指向最后一个插入元素的迭代器

  insert_after(p,b,e)  //在p之后插入b到e的元素

  insert_after(p,il)  //在p后插入il,il为花括号列表

  emplace_after(p,args)  //使用args在p指定的位置之后创建一个元素,返回指向这个新元素的迭代器

  erase_after(p)  //删除p指向的位置之后的元素,返回指向被删元素之后元素的迭代器

  erase_after(b,e)  //删除b之后(不含b)到e之间的元素

  其他操作

  resize(n)  //调整容器大小为n,新添加的初始化为0,多的丢弃,不适用于array

  resize(n,t)  //调整容器大小为n,新添加的元素初始化为t

  容器大小管理

  capacity()  // 不重新分配内存空间,c可以保存的元素数量  只适用于vector和string

  reserve(n)  //分配至少容纳n个元素的空间  只适用于vector和string

  list和forward_list成员函数算法

  lst.merge(lst2, comp)  将来自lst2的元素合并入lst,lst和lst2必须是有序的。

             元素将从lst2中删除,comp默认为<。

  lst.remove(val)    调用erase删除掉与给定值相等的元素

  lst.remove_if(pred)  删除谓词为真时的元素

  lst.reverse()     反转元素的顺序

  lst.sort(comp)    排序,默认为<

  lst.unique()     删除同一值的连续拷贝,默认为 == ,或者使用给定的二元谓词。

  splice成员

  lst.splice(args)或flst.splice_after(args)

  ( p ,l st2 )     p是lst的迭代器或flst的首前迭代器,将lst2所有元素移动到lst的p之前或flst的p之后。

           并将lst2中元素删除,lst和lst2不能是同一链表

  ( p , lst2 , p2)    p2是lst2的有效迭代器,将p2所指元素移动到lst,或将p2之后元素移动到flst。lst可以相同

  ( p , lst2 , b , e )  b和e是p2的合法范围,将给定范围元素移动,lst2可以相同,但是p不能在相同范围。

  

原文地址:https://www.cnblogs.com/wshr007/p/10444374.html