---- 向量容器vector的成员函数pop_back()可以删除最后一个元素.

---- 而函数erase()可以删除由一个iterator指出的元素,也可以删除一个指定范围的元素。

---- 还可以采用通用算法remove()来删除vector容器中的元素.

---- 不同的是:采用remove一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大小。

1、pop_back()

void pop_back();
Delete last element
Removes the last element in the vector, effectively reducing the container size by one.

This destroys the removed element.

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vec;int sum(0);vec.push_back(10);vec.push_back(20);vec.push_back(30);while(!vec.empty()){sum += vec.back();vec.pop_back();}cout<<"vec.size()="<<vec.size()<<endl;cout<<"sum = "<<sum<<endl;system("pause");return 0;
}

0
60

2、erase()

C++98

iterator erase (iterator position);
iterator erase (iterator first, iterator last);
C++11
iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);
删除指定位置的一个元素或删除指定范围内的元素

Removes from the vector either a single element (position) or a range of elements ([first,last)). 包括first,不包括last。

This effectively reduces the container size by the number of elements removed, which are destroyed.

会减小容器的容量。迭代器用于erase删除元素后,其后会失效,即不能再用该迭代器操作向量。

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vec;for(int i=0;i<10;i++){vec.push_back(i);}vec.erase(vec.begin()+5);//erase the 6th elementvec.erase(vec.begin(),vec.begin()+3);for(int i=0;i<vec.size();i++){cout<<vec[i]<<' ';}cout<<endl;system("pause");return 0;
}

//输出3 4 6 7 8 9

3、remove()  不建议使用

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vec;vec.push_back(100);vec.push_back(300);vec.push_back(300);vec.push_back(300);vec.push_back(300);vec.push_back(500);cout<<&vec<<endl;vector<int>::iterator itor;for(itor=vec.begin();itor!=vec.end();itor++){if(*itor==300){itor=vec.erase(itor);}}for(itor=vec.begin();itor!=vec.end();itor++){cout<<*itor<<" ";}    system("pause");return 0;
}

C++ vector之删除元素相关推荐

  1. STL中map/vector的删除元素操作

    在我们使用C++中的STL的时候,可以使用迭代器iterator进行遍历,但是当我们通过iterator对vector和map删除元素的时候,要格外的小心,往往操作不当,导致iterator失效,后果 ...

  2. vector插入/删除元素

    插入操作: 理论知识 ² vector.insert(pos,elem);   //在pos位置插入一个elem元素的拷贝,返回新数据的位置. ² vector.insert(pos,n,elem); ...

  3. vector中删除元素后,如何有效的释放无效元素的内存

    .erase()只是删除了元素内容,并不能改变容量大小: 举例: 35 void testvector() 36 { 38     vector v; 39     v.push_back(1); 4 ...

  4. C++ vector中删除元素

    vector中删除指定元素 //删除指定元素vector<int> v = {1,2,3,4,5,6,7,8,9,10,5,5,5};printf("v size:%d\n&qu ...

  5. 【c++】vector中删除元素

    1.删除指定范围的元素 vector删除元素之pop_back(),erase(),remove() 向量容器vector的成员函数pop_back()可以删除最后一个元素. 而函数erase()可以 ...

  6. 使用迭代器从map或vector中删除元素

    std:map的迭代器:删除时只影响当前元素 #include "stdafx.h" #include <map>std::map<int, int> m; ...

  7. vector容器删除元素的几种简单方法(详细实用)

    一.直接删除法 (1)使用 vector库函数"erase"删除,使用erase函数后容器size自动-1 int removeElement(vector<int>& ...

  8. vector 之删除元素

    删除指定位置的元素 删除vector中第5个位置的元素 1 vector<int> vec; //执行vector初始化操作 2 vector<int>::iterator i ...

  9. [算法] vector删除元素

    #include <iostream> #include <algorithm>using namespace std;bool IsOdd (int i) { return ...

最新文章

  1. LeetCode简单题之整数的各位积和之差
  2. 第五课:系统目录及ls·文件类型及alias命令介绍
  3. SharePoint 2007 Features
  4. SQL Server:移动系统数据库
  5. C++中auto关键字
  6. PyCairo 后端
  7. 数组实现矩阵逐层向内层加1
  8. Tomcat JDBC池–连接泄漏–捕获罪魁祸首
  9. 如何从XMLHttpRequest创建自定义获取API
  10. Asp.net 编码函数
  11. Ubuntu时间管理方法
  12. javaweb编辑器ckeditor配置_ckeditor编辑器在java项目中配置
  13. centos 7 查看、更新系统版本
  14. Hibernate插入、查询、删除操作 HQL (转)
  15. 2022年认证杯SPSSPRO杯数学建模A题(第一阶段)人员的紧急疏散求解全过程文档及程序
  16. Jquery(十)jqueryUI常用功能实战
  17. 阿贝尔定理(幂级数收敛半径的)
  18. Excel学习日记:L18-CountifsSumifs函数
  19. ACM比赛完了后怎么办
  20. service层调用service层的方法,并切换数据库调用不同数据库获取数据

热门文章

  1. Python实战:200行代码绘制个人足迹地图!
  2. 计算机网络原理综合考核,计算机网络原理考试重点
  3. (PC+WAP)美女图片大全类网站pbootcms模板 明星写真网站源码下载
  4. 论坛自动发帖原理介绍
  5. go-zero微服务到k8s部署应有尽有系列(一)开发环境搭建
  6. 软件缺陷度量中用EXCEL制作柏拉图的方法
  7. Flink(十六)—— Flink parallelism 和 Slot 介绍
  8. C++游戏服务器开发视频教程
  9. 盛天海科技:拼多多怎么提高转化?
  10. 射频芯片设计EM仿真(一)