C++ vector 删除一个指定元素 和 find 一个指定元素以及遍历删除、 map遍历删除元素和删除find到的元素
vector:
1.delete element
转载:http://www.cnblogs.com/xudong-bupt/p/3522457.html
#include <vector>
using namespace std;
void main(void)
{
vector<int> array;
array.push_back();
array.push_back();
array.push_back();
array.push_back();
array.push_back(); vector<int>::iterator itr = array.begin();
while (itr != array.end())
{
if (*itr == )
{
itr = array.erase(itr);//删除元素,返回值指向已删除元素的下一个位置
}
else
{
++itr;
}
}
}
2.find element
转载:http://blog.sina.com.cn/s/blog_7c18235d0100tnjt.html
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std; vector<int> array();//整型的array数组 int main()
{
array[]=; vector<int>::iterator s=find(array.begin(),array.end(),);//第一个参数是array的起始地址,第二个参数是array的结束地址,第三个参数是需要查找的值 if( s !=array.end())//找到
cout<<*s<<endl; else cout<<"not find!"<<endl;
system("pause");
return ;
}
3.Traverse delete element
#include <vector>
#include <iostream>
using namespace std; int main()
{
vector<int> test_vec;
for (int i = ; i<;i++)
{
test_vec.push_back(i);
}
for(vector<int>::iterator it = test_vec.begin(); it != test_vec.end(); )
{
cout<<*(it)<<endl;
it = test_vec.erase(it);
}
return ;
}
转载:http://blog.csdn.net/windren06/article/details/8141921
转载:http://www.cnblogs.com/dabaopku/p/3912662.html
转载:http://blog.csdn.net/dds_dev_group/article/details/6951441
map:
1.Traverse delete element
方法一
#include<map>
#include<string> int main()
{
map<string,int> m;
m["a"]=;
m["b"]=;
m["c"]=;
map<string,int>::iterator it;
for(it=m.begin();it!=m.end();)
{
map<string,int>::iterator it_back = it;//备份迭代器。因为删除操作后,迭代器指向空,要备份。
if(it_back != m.end())
{
it++;
m.erase(it_back);
}
}
return ;
}
it指针在元素被删除后失效了,所以在删除之前要备份当前it,it++之后移动一下个元素,然后再删除当前元素
方法二:
int main()
{
std::map<string,int> m;
m["a"]=;
m["b"]=;
m["c"]=;
map<string,int>::iterator it;
for(it=m.begin();it!=m.end();)
{
if(it != m.end())
{
m.erase(it++);
}
}
return ;
}
在执行erase之前,it已经被加1了。erase会使得以前那个未被加一的it失效,而加了一之后的新的it是有效的。
2. find delete element(找到指定的元素删除)
#include<map>
int main()
{
map<string,int> m;
m["a"]=;
m["b"]=;
m["c"]=;
map<string,int>::iterator iter; iter = m.find("a"); if(iter!=m.end())//找到了
{
cout << iter->first << endl;
m.erase(iter);
}
return ;
}
C++ vector 删除一个指定元素 和 find 一个指定元素以及遍历删除、 map遍历删除元素和删除find到的元素的更多相关文章
- 每日分享!~ JavaScript(js数组如何在指定的位置插入一个元素)
这个想法是在一个面试题中看到的: 题目是这样的: // 一个数组,在指定的index 位置插入一个元素,返回一个新的数组,不改变原来的数组 <script> function inse ...
- php中删除数组的第一个元素和最后一个元素的函数
对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作. ( ...
- 如何使用jquery判断一个元素是否含有一个指定的类(class)
如何使用jquery判断一个元素是否含有一个指定的类(class) 一.总结 一句话总结:可以用hasClass方法(专用)和is方法 1.is(expr|obj|ele|fn)的方法几个参数表示什么 ...
- JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...
- 怎么使用jquery判断一个元素是否含有一个指定的类(class)
在jQuery中可以使用2种方法来判断一个元素是否包含一个确定的类(class).两种方法有着相同的功能.2种方法如下:(个人喜欢用hasClass()) 1. hasClass( ...
- Js数组里剔除指定的元素(不是指定的位置)
s数组里删除指定的元素(不是指定的位置)之前一直是做后端的,从来也没有写过js,但是却一直想学学,也只是基于兴趣而已!现在到了这个公司,确实大量的写js.但也一直都是没有系统的去看过js!都是搞什么查 ...
- off(events,[selector],[fn]) 在选择元素上移除一个或多个事件的事件处理函数。
off(events,[selector],[fn]) 概述 在选择元素上移除一个或多个事件的事件处理函数. off() 方法移除用.on()绑定的事件处理程序.有关详细信息,请参阅该网页上deleg ...
- 一个操作Sql2005数据库的类(备份,还原,分离,附加,添加删除用户等操作)(转载)
/* * 更新时间 :2011-09-01 16:06 * 更 新 人 :苏飞 */ using System; using System.Collections.Generic; using Sys ...
- 使用css3和伪元素制作的一个立体导航条
使用css3和伪元素制作的一个立体导航条供大家参考,代码如下: <!doctype html> <html lang="en"> <head> ...
随机推荐
- mysqli_report
MYSQLI_REPORT_OFF Turns reporting off MYSQLI_REPORT_ERROR Report errors from mysqli function calls M ...
- linux下的vdso与vsyscall
传统的系统调用是怎样的? —— int 0x80的时代 .... :通过寄存器传参 mov $n ,eax :将系统调用号放到eax中 int 0x80 sysenter/sysexit的出 ...
- Find The Multiple--POJ1426
Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose ...
- 正则表达式(二):Unicode诸问题上篇(转)
原文:http://www.infoq.com/cn/news/2011/02/regular-expressions-unicode 关于正则表达式的文档很多,但大部分都是英文的,即便有中文的文档, ...
- eclipse 64和32位切换
JAVA_HOME配置的是JAVA_HOME=D:\Java\32\jdk1.6.0_13
- windows平台mysql密码破解设置
windows平台下,5.7版本mysql,破解密码的两种方式: #1 关闭mysql服务net stop mysql 启动mysql服务 跳过权限 #2 在cmd中执行:mysqld --skip- ...
- [py]django第三方分页器django-pure-pagination实战
第三方分页模块: django-pure-pagination 是基于django的pagination做的一款更好用的分页器 参考 配置django-pure-pagination模块 安装 pip ...
- maven工程插件配置
<build> <!-- 该级工程会加载插件,放在父工程里 --> <plugins> <!-- 资源文件拷贝插件 --> <plugin> ...
- 第22章 CLR寄宿和AppDomain
22.1 CLR寄宿 CLR Hosting(CLR 宿主)的概念:初始启动.Net Application时,Windows进程的执行和初始化跟传统的Win32程序是一样的,执行的还是非托管代码,只 ...
- isKindOfClass isMemeberOfClass 的区分
isKindOfClass If you use such constructs in your code, you might think it is alright to modify an ob ...