怎样在c++ 中删除vector最后一个元素

如题所述

c++可以使用 vector 的成员函数 pop_back() 来删除容器尾部的元素。

vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。

vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

扩展资料:

vector的缺点:

1、时间开销较大,运行速度与数组相比较慢。

2、clear()无法清空内存。

注意:vector属于std命名域的,因此需要通过命名限定。

建议在代码量不大,并且使用的命名空间不多的情况下,使用全局的命名域方式:using namespace std函数。

vector常用方法:

1、c.assign(beg,end) c.assign(n,elem)将(beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。传回索引idx所指的数据,如果idx越界,抛出out_of_range。

2、c.back(),传回最后一个数据,不检查这个数据是否存在。

3、c.begin(),传回迭代器中的第一个数据地址。

4、c.capacity(),返回容器当前已分配的容量。

5、c.clear(),移除容器中所有数据。

6、c.empty(),判断容器是否为空。

c.end() //指向迭代器中末端元素的下一个,指向一个不存在元素。

c.erase(pos)// 删除pos位置的数据,传回下一个数据的位置。

c.erase(beg,end)

删除[beg,end)区间的数据,传回下一个数据的位置。

7、c.front(),传回第一个数据。

参考资料来源:百度百科-vector

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-06

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。

C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。

代码:std::vector::erase()

函数原型:iterator erase (iterator position);  //删除指定元素

iterator erase (iterator first, iterator last);  //删除指定范围内的元素

返回值:指向删除元素(或范围)的下一个元素。An iterator pointing to the new location of the element that followed the last element erased by the function call. This is the container end if the operation erased the last element in the sequence。

positions.erase(positions.begin() + i)

注意删除之后vector大小已经变化, 循环控制条件要注意变化

c.pop_back

删除c的最后一个元素,返回void

本回答被网友采纳
第2个回答  推荐于2018-02-27
c.pop_back()
删除c的最后一个元素,返回void.本回答被提问者和网友采纳
第3个回答  2014-12-09
用迭代器it指向这个元素,v.erase(it)
第4个回答  2014-12-09
v.erase(v.end()-1);
相似回答