顺序容器的一些操作
Posted cs0915
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序容器的一些操作相关的知识,希望对你有一定的参考价值。
添加元素
1.push_back
向尾部添加一个元素,除了array与forward_list不支持外,其余顺序容器皆支持
形式:c.push_back(t)
注:把一个对象添加到容器中,实际上放入的是对象的拷贝值而不是对象本身,随后对容器中元素的任何改变都不会影响原始对象。
2.push_front
将元素插入到容器头部,vector不支持
形式:c.push.front(t)
3.insert
接受一个迭代器和值作为参数,将元素插入到迭代器所指定的位置之前,迭代器可以指向容器任何位置,包括尾部之后的下一个位置
形式:c.insert(iter,t)//iter是迭代器,t为值
c.insert(iter,元素个数,t)
c.insert(iter,v.iter1,v.iter2)//接受一对迭代器,把该对迭代器所指的内容插入到iter指示的位置之前
返回值:返回一个迭代器,指向(第一个)新加入的那个元素。
注:虽然某些容器不知push_front,但是它们对于insert操作并无限制,所以可以用insert操作将元素插入容器起始位置,而不用担心容器是否支持push_front
4.emplace
emplace_front,emplace,emplace_back分别对应push_front,insert,push_back,这些操作构造元素而不是拷贝元素,当调用一个emplace成员函数时,是将参数传递给元素类型的构造函数,emplace使用这些参数构造出元素再添加到容器
形式:c.emplace_back(构造对象的形参)//c.emplace("978-050909",23,14.99),容器的元素类型为某个类,该类的构造函数的形参为"978-050909",23,14.99
访问元素
c.front()
c.back()
c[n]
删除元素
c.pop_back()
c.pop_front()
c.erase(p)//删除迭代器p指定的元素,返回一个指向被删除元素之后的迭代器
c.erase(b,e)//删除迭代器b和e所指定的范围的元素,返回指向最后被删除元素之后元素的迭代器
c.clear()//删除c中的所有元素,返回void
其它成员函数
c.size()
c.empty()
swap(c1,c2)//交换两个容器c1,c2中的元素,c1,c2必须具有相同类型
c.assign(v.iter1,v.iter2)//用迭代器所指定的范围的元素替换左边容器的所有元素,允许容器类型不同和值类型,但值须相容
c.assign(元素个数,元素值)//替换
以上是关于顺序容器的一些操作的主要内容,如果未能解决你的问题,请参考以下文章