STL对map排序
// sort start
typedef struct{
...
}Node;
// Map的键是字符串,值是结构体。虽然有自动排序特性,但是按字符串的排序并不能符合要求。此时,Map的key可以视为已经有序,将其转化为int存入数组,然后对数组排序。
// 考虑到键是唯一的,所以先转为整型,再去Map中查找和字符串对应的Key值
std::map<std::string, Node>::iterator ite = map1.begin();
std::vector<int> tmpVecInt;
stringstream ss;
int tmpInt=;
for(;iter != map1.end();++iter){
ss.clear();
ss.str("");
ss<<iter->first;
ss>>tmpInt;
tmpVecInt.push_back(tmpInt);
}
sort(tmpVecInt.begin(),tmpVecInt.end());
// sort end std::vector<int>::iterator indexIterInt=tmpVecInt.begin();
std::string strkey;
for(; indexIterInt != tmpVecInt.end(); indexIterInt++)
{
ss.clear(); ss.str("");
ss<< *indexIterInt; // 整型转化为字符串
ss>>strkey; // 可以省,下面直接用ss.c_str()即可 iterTests=tmpSite.tests.find(strkey.c_str());
cout<< iterTests->second.id << endl;
}
STL对map排序的更多相关文章
- STL之map排序
描述 STL的map中存储了字符串以及对应出现的次数,请分别根据字符串顺序从小到大排序和出现次数从小到大排序. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { ...
- stl之map 排序
排序问题,STL中默认是采用小于号来排序的,因为设置int等类型做key,它本身支持小于号运算,在一些特殊情况,比如关键字是一个结构体,涉及到排序就会出现问题,因为它没有小于号操作,insert等函数 ...
- C++ STL中Map的按Key排序和按Value排序
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区 分),我们用map来进 ...
- C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET
C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...
- STL容器——对map排序
STL容器(三)——对map排序 对于map的排序问题,主要分为两部分:根据key排序:根据value排序.下面我们就分别说一下~ 1. 根据key进行排序 map默认按照key进行升序排序 ,和输入 ...
- C++ STL中Map的按Key排序跟按Value排序
C++ STL中Map的按Key排序和按Value排序 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定 ...
- 对vector等STL标准容器的排序操作
[+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...
- STL中map与hash_map的比较
1. map : C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N) 2. hash_map : 使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O ...
- 关于STL的map的注意事项
关于map是什么,这里就不多叙述了. 直接正题,常用的map插入操作有三种方法:通过pair<key_type,value_type>.通过value_type插入数据.还有一种类似于数组 ...
随机推荐
- java大附件上传,支持断点续传
一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输. ...
- 2019.12.09 Scanner类(用户输入数据----引用数据类型)
创建:数据类型 变量名 = new 数据类型(): 引用:变量名.方法名(): //导包import java.util.Scanner;class Demo01{ public st ...
- 2016android在线测试15-图像 camera2
1.ImageView类用于显示各种图像,例如:图标,图片,下面对于ImageView类加载图片方法的描述有: void setImageResource(int resld): 设置Drawanbl ...
- mysql5.7设置默认的字符集
修改/etc/my.cnf文件 一.在[mysqld]下添加: default-storage-engine=INNODB character-set-server=utf8 collation-se ...
- Clion下同时编写多个main函数
在你的CMakeLists.txt文件下配置,使用add_executable(),前面的一定要不一样 红色部分是描述main的,配置后运行处可以选择:
- ICEM-哑铃
原视频下载地址:https://pan.baidu.com/s/1kVBKJbT ;密码: jqeh
- jmap -heap 查看堆内存
概述 用jmap -heap命令可以查看linux堆内存分布 具体用法 1:先查出tomcat的进程号 例如: 然后执行 jmap -heap 7095 可以打印出整体的堆信息 可以看到经过分配的 ...
- 【转】Android ROM分析(1):刷机原理及方法
一.刷机原理 android系统启动的时候,首先会进行一些诸如硬件自检之类的操作,这些操作完成以后(至少它应该知道当前的机器有没有电),会检查一下当前手机按键的状态(接下来就是所谓刷机模式切换了,不同 ...
- springboot自动装配redis在pool下偶尔出现连接异常的问题
jedis pool的配置其实是采用 org.apache.commons.pool2.impl.GenericObjectPoolConfig类的配置项. jedis 2.9版本代码如下: pack ...
- shell关闭指定进程
例如要关闭jupyter-notebook这个进程: ps -ef | grep jupyter-notebook | grep -v grep | cut -c 9-15 | xargs kill ...