C++技巧之STL(持续更新)
2015-07-27 16:55
381 查看
C++技巧之STL(持续更新)
一、STL——map
1.在map中按值进行排序
C++的map,是一种key-value对照的容器,在用sort进行排序时,如果不进行变换是不能直接对值(value),因为sort排序,只能对顺序容器排序,所以只能对map的key,也就是关键字,排序。而大多数时候,需要对map的value,进行排序,比如,用map表示分数和人数 map<int, int> 需要输出人数最多或者最少的人对应的分数,或者按人数递增,递减的顺序输出对应的成绩。就需要就行转换了。可以将map放在vector中,然后对vector 进行排序,在直接操作!代码如下:
bool cmp(const pair<int, int>& x, const pair<int, int>& y)
{
return x.second < y.second;
}
int main()
{
map<int, int>m;
for (int i = 0; i < 10; ++i)
{
cin >> tmp;
m[tmp]++;
}
vector< pair<int, int> >n(m.begin(), m.end()); //用> > 不用>> 是因为>>是cout里面的,带有运算符重载
sort(n.begin(), n.end(), cmp);
cout << n[0].first << endl;
return 0;
}
//输入80 90 90 80 90 80 70 60 60 60
//map中key-value为
//80---->3
//90---->3
//70---->1
//60---->3
//排序后70---->1这组在容器第一位,所以输出70
相关文章推荐
- 数字滤波器实现(mantlab+C语言)
- C语言链表(1)——搜索
- Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
- c++模板
- C++构造函数与传默认值的关系
- IOS开发系列--C语言之存储方式和作用域
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- 逗号运算符
- c语言之cgi
- c++ 动态库和静态库
- 一个C语言编写的贪吃蛇游戏
- C/C++类型强制转换
- 病毒侵袭持续中
- 2、C语言register关键字—最快的关键字
- 求白色三角形的最大面积 Triangles
- c++类中构造函数的调用
- 《C++编程思想》第三章 隐藏实现 (原书代码+习题+解答)
- 一个C语言编写的坦克大战游戏
- c++ 11 一些新特性
- POJ 1860 Currency Exchange Bellman-Ford算法求单源最短路径并判断是否有正权回路