博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vector排序,set交并,map
阅读量:4580 次
发布时间:2019-06-09

本文共 1689 字,大约阅读时间需要 5 分钟。

 

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 bool cmp(const pair
&a,const pair
&b) 7 { 8 return a.second < b.second;//由小到大排序 9 }10 11 int main()12 {13 int i,j,k,T;14 int num;15 cin>>num;16 vector
> a;17 for(i=0;i
>x>>y;21 a.push_back(make_pair(x,y));//注意make_pair后面是圆括号 22 }23 int _size = a.size(); 24 //sort(&a[0],&a[_size],cmp);//第一个不是&a 25 sort(a.begin(),a.end(),cmp);//上写两个均可排序 26 vector
> ::iterator iter;27 for(iter=a.begin();iter!=a.end();iter++)28 cout<
first<<" "<
second<

 

 

判断存在与否,过去一直用的是count方法。

 

 

 

 

 

 

 

map插入数据,以上三种用法,虽然都可以实现数据的插入,但是它们是有区别的,当然了第一种和第二种在效果上是完成一样的,用insert函数插入数据,在数据的插入上涉及到集合的唯一性这个概念,即当map中有这个关键字时,insert操作是插入数据不了的,但是用数组方式就不同了,它可以覆盖以前该关键字对应的值

 

 

 注意:下面是在2012成都预选赛时想起的问题

map <int,bool> mm;

map <int,bool> ::iterator ptr;
怎样让迭代器指向第三个元素
ptr = mm.begin()+2,这样会编译错误,分两次自增又太麻烦。
还有就是怎样直接返回第三个位置的元素

 

对于第一个问题,可以advance(ptr,2)

第二个问题实际上是随机访问的问题, map不可以的,还是 advance(ptr,2),输出*ptr

 

 

 

在涉及到容器和算法的操作中,还有两个迭代器函数非常有用:

  
  · advance() 按指定的数目增减迭代器。
  
  · distance() 返回到达一个迭代器所需(递增)操作的数目。
  
  例如:
  
  list iList;
  list::iterator p =
   find(iList.begin(), iList.end(), 2);
  cout << "before: p == " << *p << endl;
  advance(p, 2); // same as p = p + 2;
  cout << "after : p == " << *p << endl;
  
  int k = 0;
  distance(p, iList.end(), k);
  cout << "k == " << k << endl;
  
  advance()函数接受两个参数。第二个参数是向前推进的数目。对于前推迭代器,该值必
  须为正,而对于双向迭代器和随机访问迭代器,该值可以为负。
  
  使用 distance()函数来返回到达另一个迭代器所需要的步骤。
  注意
  
  distance()函数是迭代的,也就是说,它递增第三个参数。因此,你必须初始化该参数
  。未初始化该参数几乎注定要失败。

 

 

转载于:https://www.cnblogs.com/hxsyl/archive/2012/09/15/2687033.html

你可能感兴趣的文章
python import 上级目录(转)
查看>>
CSS 选择器 知识点
查看>>
JavaScript正则表达式函数总结
查看>>
浅谈API安全设计
查看>>
信分期模块
查看>>
vue-cli卸载旧版,再重新安装后还显示的是旧的版本
查看>>
Vue基础知识之axios和vue-resource
查看>>
asp.neti 加密三种方式
查看>>
winform 上传图片名到数据库
查看>>
Python 互斥锁
查看>>
两个div不同高度并排显示
查看>>
select文本居中
查看>>
什么是SQL statement?
查看>>
oracle小知识
查看>>
进制转换
查看>>
hdu 4524 郑厂长系列故事——逃离迷宫 解题报告
查看>>
.net图表之ECharts随笔04-散点图
查看>>
linux下时间的同步
查看>>
redis(七)---- SpringBoot和redis整合
查看>>
Apple Swift编程语言入门教程
查看>>