C++ vector之删除元素
---- 向量容器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之删除元素相关推荐
- STL中map/vector的删除元素操作
在我们使用C++中的STL的时候,可以使用迭代器iterator进行遍历,但是当我们通过iterator对vector和map删除元素的时候,要格外的小心,往往操作不当,导致iterator失效,后果 ...
- vector插入/删除元素
插入操作: 理论知识 ² vector.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置. ² vector.insert(pos,n,elem); ...
- vector中删除元素后,如何有效的释放无效元素的内存
.erase()只是删除了元素内容,并不能改变容量大小: 举例: 35 void testvector() 36 { 38 vector v; 39 v.push_back(1); 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 ...
- 【c++】vector中删除元素
1.删除指定范围的元素 vector删除元素之pop_back(),erase(),remove() 向量容器vector的成员函数pop_back()可以删除最后一个元素. 而函数erase()可以 ...
- 使用迭代器从map或vector中删除元素
std:map的迭代器:删除时只影响当前元素 #include "stdafx.h" #include <map>std::map<int, int> m; ...
- vector容器删除元素的几种简单方法(详细实用)
一.直接删除法 (1)使用 vector库函数"erase"删除,使用erase函数后容器size自动-1 int removeElement(vector<int>& ...
- vector 之删除元素
删除指定位置的元素 删除vector中第5个位置的元素 1 vector<int> vec; //执行vector初始化操作 2 vector<int>::iterator i ...
- [算法] vector删除元素
#include <iostream> #include <algorithm>using namespace std;bool IsOdd (int i) { return ...
最新文章
- LeetCode简单题之整数的各位积和之差
- 第五课:系统目录及ls·文件类型及alias命令介绍
- SharePoint 2007 Features
- SQL Server:移动系统数据库
- C++中auto关键字
- PyCairo 后端
- 数组实现矩阵逐层向内层加1
- Tomcat JDBC池–连接泄漏–捕获罪魁祸首
- 如何从XMLHttpRequest创建自定义获取API
- Asp.net 编码函数
- Ubuntu时间管理方法
- javaweb编辑器ckeditor配置_ckeditor编辑器在java项目中配置
- centos 7 查看、更新系统版本
- Hibernate插入、查询、删除操作 HQL (转)
- 2022年认证杯SPSSPRO杯数学建模A题(第一阶段)人员的紧急疏散求解全过程文档及程序
- Jquery(十)jqueryUI常用功能实战
- 阿贝尔定理(幂级数收敛半径的)
- Excel学习日记:L18-CountifsSumifs函数
- ACM比赛完了后怎么办
- service层调用service层的方法,并切换数据库调用不同数据库获取数据