C++-std::map

STL不是语法要点,而是工具,如果能解决问题,即使一点也不懂也没问题;如果能提供便利去编程,何乐而不为。

本文配合MFC的CString使用;map是键值对;

0、头文件

#include <memory>//stl没有.h

1、使用typedef类型定义

typedef std::map<CString,CString> S_S_MAP;
typedef std::map<CString,int> S_I_MAP;
typedef std::map<CString,CString>::iterator S_S_MAP_ITER;
typedef std::map<CString,int>::iterator S_I_MAP_ITER;

前面两个是map,后面是两个迭代器

2、插入数据

S_S_MAP sMap;
CString tmepStr1,tmepStr2;
...
sMap.insert(std::pair<CString,CString>(tmepStr1,tmepStr2));

3、删除所有

sMap.clear();

4、查找某个key是否存在,通过find返回的迭代器与end迭代器作比较

S_S_MAP_ITER iter;
iter = sMap.find(_T("some key name"));
if (iter != lmap.end())//存在
{
   ....  
}

 5、遍历

std::map<int, QString> systemUiCfg;
systemUiCfg[0x00] = "RadarMainSystem.qml";
systemUiCfg[0x90] = "Trasmit.qml";
systemUiCfg[0x70] = "DigitalPlugBox.qml";
for(auto& it : systemUiCfg){
  qDebug()<< it.first << it.second);
}

 

posted @ 2019-06-03 14:11  朱小勇  阅读(463)  评论(0编辑  收藏  举报