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

猜你喜欢

转载自www.cnblogs.com/wshr007/p/10444374.html