顺序容器的一些操作

添加元素

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(元素个数,元素值)//替换

猜你喜欢

转载自www.cnblogs.com/cs0915/p/12716693.html
今日推荐