C++ Map用法详解

2023-05-16

用法汇总

insert

插入一个元素

size

获得map中元素的个数

max_size

获得map所能容纳的元素个数

count

判断是否存在某个key,存在为返回1

find

查找某个key

erase

删除指定的元素

clear

清空map

empty

判断map是否为空

begin

获取map的第一个元素,一般遍历的时候用

end

获取map的最后一个元素,一般遍历的时候用

rbegin

获取map的第一个元素,一般倒序遍历时候用

rend

获取map的最后一个元素,一般倒序遍历时候用

value_comp

Retrieves a copy of the comparison object that is used to order element values in a map.

lower_bound

Returns an iterator to the first element in a map that has a key value that is equal to or greater than that of a specified key.

upper_bound

Returns an iterator to the first element in a map that has a key value that is greater than that of a specified key.

swap

Exchanges the elements of two maps.

equal_range

Returns a pair of iterators. The first iterator in the pair points to the first element in a map with a key that is greater than a specified key. The second iterator in the pair points to the first element in the map with a key that is equal to or greater than the key.

get_allocator

Returns a copy of the allocator object that is used to construct the map.

key_comp

Returns a copy of the comparison object that used to order keys in a 

用法示例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

// base define

std::map <std::string, std::string> sColleagueMap;

 

// 插入元素

sColleagueMap.insert( std::pair<std::string, std::string>("rao""haijun") );

sColleagueMap.insert( std::pair<std::string, std::string>("zhao""jingjing") );

sColleagueMap.insert( std::pair<std::string, std::string>("fan""junjie") );

 

// 访问指定元素

std::cout<<sColleagueMap.at("rao")<<std::endl;

 

// 判断map中是否包含某个元素

std::cout<<sColleagueMap.count("rao")<<std::endl;

 

// 查找map中是否包含某个元素

auto findIt = sColleagueMap.find("fan");

if(findIt != sColleagueMap.end() ){

std::cout<<"find the element:"<<findIt->first<<findIt->second<<std::endl;

}

 

// 遍历元素(不允许修改) 从前到后 C++11标准

auto sCollItConst = sColleagueMap.cbegin();

for(; sCollItConst!=sColleagueMap.cend(); ++sCollItConst){

std::cout<<sCollItConst->first<<sCollItConst->second<<std::endl;

}

 

// 遍历元素(不允许修改) 从后到前 C++11标准

auto sCollItConstr = sColleagueMap.crbegin();

for(; sCollItConstr!=sColleagueMap.crend(); ++sCollItConstr){

std::cout<<sCollItConstr->first<<sCollItConstr->second<<std::endl;

}

 

// 遍历元素(可以修改)从前到后

std::map<std::string, std::string>::iterator sCollIt = sColleagueMap.begin();

for(; sCollIt!=sColleagueMap.end(); ++sCollIt){

if(sCollIt->first == "rao"){

sCollIt->second = "yuke";

}

std::cout<<sCollIt->first<<sCollIt->second<<std::endl;

}

// 遍历元素(可以修改)从后到前

std::map<std::string, std::string>::reverse_iterator sCollItR = sColleagueMap.rbegin();

for(; sCollItR!=sColleagueMap.rend(); ++sCollItR){

if(sCollItR->first == "rao"){

sCollItR->second = "zhihao";

}

std::cout<<sCollItR->first<<sCollItR->second<<std::endl;

}

// 清空所有元素

sColleagueMap.clear();

std::cout<<sColleagueMap.size()<<std::endl;

 

// 判断map的所能hold到的最大element个数

std::cout<<"max:"<<sColleagueMap.max_size()<<std::endl;

char *pNew = new char[1024*1024*1024];

if(!pNew){

std::cout<<"malloc memory error!"<<std::endl;

}

std::cout<<"max:"<<sColleagueMap.max_size()<<std::endl;

delete[] pNew;

// 判断是否为空

std::cout<<sColleagueMap.empty()<<std::endl;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ Map用法详解 的相关文章

  • MFC 类库结构 总结

    MFC主要类库结构总结 MFC类主要分为应用程序结构类 窗口支持类 图书设备类 模版集合类 简单数据类型类以及全局AFX函数等6个类 1 应用程序结构类 应用程序结构类代表的是应用程序的基本元素 xff0c 主要包括了CcmdTarget类
  • MFC基本框架结构

    本文将剖析基于MFC的框架程序 xff0c 探讨MFC框架程序的内部组织结构 xff0c MFC是微软为了简化程序员的开发工作而设计的一套c 43 43 类集合 xff0c 利用这些类有 效地帮助程序员完成windows应用程序开发 代码结
  • mfc编程消息机制中消息汇总

    做VC开发必须熟悉消息机制 xff0c 笔试面试重点 xff0c 自己在这方面很欠缺 xff0c 搜集学习一下 WM CREATE CreateWindow 初始化工作 GetMessage 遇到WM QUIT 程序结束 DispatchM
  • c++中SetEvent和ResetEvent的使用

    关于事件 事件 Event 是WIN32提供的最灵活的线程间同步方式 xff0c 事件可以处于激发状态 signaled or true 或未激发状态 unsignal or false 根据状态变迁方式的不同 xff0c 事件可分为两类
  • MFC设置主界面背景图片、设置子窗体背景图片

    在Onpaint函数中加入如下代码 给窗口设置背景图片 CPaintDC dc this CRect myrect GetClientRect amp myrect CDC dcMem dcMem CreateCompatibleDC am
  • MFC——在视图窗口加载背景图片

    1 若是文档视图程序的话 xff0c 在视图类的OnDraw CDC pDC 函数中调用pDC gt TextOut 函数 xff0c 就像平常输出文字一样 若是嫌文字的背景颜色破坏了图像 xff0c 可以在输出文字之前调用pDC gt S
  • 如何修改MFC的图标

    更改IDR MainFrm指向的ico文件 xff0c 该图标有两种格式 xff0c 32 32和16 16 xff0c 这两种格式都要改 xff0c 还可以在主框架的OnCreate函数里指定使用哪个图标 xff1a HICON m hI
  • MFC改变控件位置和大小

    最近经常要用到改变控件在对话框上的位置和大小 xff0c 一直找不到有效的方法 xff0c 查看了很多资料 这篇博文还算靠谱 xff0c 转载到这里了 void CmyqeDlg OnSize UINT nType int cx int c
  • mfc控件位置调整和坐标确定 .

    在mfc工程中控件或者窗口位置的调整是经常遇到的 xff0c 特别是基于对话框的工程 位置的调整包括坐标 长度和宽度的变化 xff0c 一般在窗口类的OnSize函数中实现 控件位置的调整涉及的函数有 xff1a GetWindowRect
  • MFC笔记2(控件位置调整)

    1 根据计算 xff0c 使用GetClientRect amp 就可以调整好 2 遇到了OK和Cancel按钮通过GetDlgItem xff08 ID xff09 找不到id资源号的情况 xff0c 最后通过给控件绑定控件变量到类中就可
  • MFC控件随窗口大小变化原理及实现

    本文主要针对MFC的dialog xff0c 实现控件随窗口大小变化 原理 xff1a 首先获取dialog的初始大小 xff0c 当窗口发送变动时 xff0c 调用OnSize事件和方法 xff0c 计算缩放比例 xff0c 然后对界面中
  • MFC对话框中处理Enter或Esc按键事件方法

    建立好的MFC的对话框 xff0c 按下Enter或Esc时 xff0c 系统会调用 默认 事件处理函数 xff0c 也就是OnOK xff0c 倘若自己的CFormView子类或者CDialog子类没有重写OnOK 函数 xff0c 则会
  • VS2010 MFC中控件、对话框等背景颜色动态修改的方法

    通过类向导 xff0c 或者手动添加消息 xff1a WM CTLCOLOR xff0c 其消息响应函数为 xff1a afx msg HBRUSH OnCtlColor CDC pDC CWnd pWnd UINT nCtlColor 1
  • MFC窗口风格 WS_style/WS_EX_style

    窗口风格 Window style WS BORDER 有边框窗口 WS CAPTION 必须和WS BORDER风格配合 xff0c 但不能与WS DLGFRAME风格一起使用 指示窗口包含标题要部分 WS CHILD 说明窗口为子窗口
  • MFC 窗体样式修改

    窗体创建之后 xff0c 如何设置窗体的样式呢 xff1f 一般情况下使用GetWindowLongW与SetWindowLongW即可实现窗体样式的修改或者使用ModifyStyle 关于MFC存在GetWindowLongW和GetWi
  • 更改MFC生成的程序的默认exe图标

    一般更改打开程序时的左上角的程序图标使用如下方法 xff1a 对话框为例 xff0c 在对话框构造函数中m hIcon 61 AfxGetApp gt LoadIcon IDI ICON3 将最后的IDR MAINFRAME改为自己的图标即
  • C#与USB设备通信

    最近有一个项目 xff0c 也是我硕士大论文要写的东西 xff0c 就是从两个线阵相机上读取数据 gt 分析数据 gt 做到利用线阵相机检测接触线 铁路接触网 几何参数的功能 由于线阵相机是从武汉的一个创业公司买的 xff0c 实在是坑死个
  • C++常用类型转换

    char是C语言标准数据类型 xff0c 字符型 xff0c 至于由几个字节组成通常由编译器决定 xff0c 一般一个字节 Windows为了消除各编译器的差别 xff0c 重新定义了一些数据类型 CHAR为单字节字符 还有个WCHAR为U
  • C++在dll中获取自身路径(非exe调用路径)

    include 34 stdafx h 34 include lt fstream gt include lt iostream gt include lt windows h gt using namespace std HMODULE
  • MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮

    1 第一次尝试 设置 IDC BUTTON3按钮风格的bitmap为true 在OnInitialDilog中 xff1a CButton cbpTest 61 NULL HINSTANCE hInstance 61 AfxGetResou

随机推荐

  • MFC 之 重绘按键Cbutton

    上次我们学习了如何美化对话框的界面 xff0c 这次我们为上次的对话框添加两个按钮 xff0c 一个是关闭按钮 xff0c 另一个是最小化按钮 xff0c 好 xff0c 现在我们先看一下效果 xff1a 是不是很难看 xff0c 因为我们
  • VC的MFC中重绘函数的使用总结(整理)

    原文网址 xff1a http www cnblogs com x8023z archive 2008 12 09 mfc33 html 在刷新窗口时经常要调用重绘函数 MFC提供了三个函数用于窗口重绘 InvalidateRect amp
  • DrawItem

    原文链接 http blog csdn net jiftlixu article details 4893505 今天从CButton派生了一个类CUIButton xff0c 主要用于自绘 xff0c 按照基本的流程 xff0c 重写Dr
  • C/C++报错:全局变量重定义或是多次定义

    很多人可能直接把全局变量写进 h文件 xff0c 然后用多个文件包含这个头文件 xff0c 编译时就会报错 xff1a 变量重定义 头文件的作用就是要给外部提供接口使用的 xff0c 所以请记住 xff0c 只在 h中做声明 xff0c 在
  • C++ 包含目录、库目录、附加依赖项总结

    在使用opencv库 xff0c 以及其他库的时候 xff0c 经常会需要添加包含目录 库目录 附加依赖项等 现做一个总结吧 1 包含目录 是 h的头文件所在的目录 xff0c 如果没有正确包含目录 xff0c 代码中会出现红色的警告 xf
  • c++设置不适用预编译头

    编译器提示在末尾是否忘了添加stdafx h 可右键相应的 cpp文件 xff0c 设置c 43 43 设置不适用预编译头
  • Linux高级字符设备之Poll操作

    在用户程序中 xff0c select 和poll 也是与设备阻塞与非阻塞访问息息相关的 xff0c 使用非阻塞I O的应用程序通常会使用select和poll系统调用查询是否可对设备进行无阻塞的访问 select系统调用最终会引发设备驱动
  • C++中关于[]静态数组和new分配的动态数组的区别分析

    一 静态数据及动态数组的创建 静态数据 xff1a int a 10 xff1b int a 61 1 2 3 数组的长度必须为常量 动态数组 xff1a int len int a 61 new int len delete a 数组的大
  • MFC中将CBitmap画到cdc上

    取Picture矩形和它的DC CRect rect CWnd pWnd 61 GetDlgItem IDC PICTURE LINK pWnd gt GetClientRect rect CDC pDC 61 pWnd gt GetDC
  • MFC中获取任务栏大小

    MFC怎么获得当前屏幕大小 你可以这样 HWND hwnd 61 GetDesktopWindow RECT rect GetClientRect hwnd amp rect 可以得到桌面大小 还有就是上面所说的 int nScreenWi
  • MFC中OnCtlColor的用法(改变控件颜色)

    HBRUSH CMFCApplication1Dlg OnCtlColor CDC pDC CWnd pWnd UINT nCtlColor HBRUSH hbr 61 CDialogEx OnCtlColor pDC pWnd nCtlC
  • MFC与OpenCv中的图片转换实例

    include 34 AnalysisManager h 34 IplImage GetFontDiscerImage char sourcePath 打开要识别字符的图像 IplImage image 61 cvLoadImage sou
  • mfc中主窗体显示(任务栏上方显示)

    int sx 61 GetSystemMetrics SM CXSCREEN 获得屏幕的大小 宽 int sy 61 GetSystemMetrics SM CYSCREEN 获得高 int st 61 GetSystemMetrics S
  • MFC改变对话框背景图片实例

    TODO 在此添加消息处理程序代码和 或调用默认值 CPaintDC dc this device context for painting CRect rect GetClientRect amp rect 获取对话框长宽 CDC dcB
  • 浅谈MFC中BitBlt与StretchDIBits的区别

    一 基础知识 1 BitBlt BitBlt 用于从原设备中复制位图到目标设备 xff0c 语法格式如下 xff1a BOOL BitBlt HDC hdcDest handle to destination DC int nXDest 目
  • 关于HBITMAP,CBITMAP,BITMAP的转换以及图像显示的一点归纳

    OK xff0c 在上一篇文章中我提到了VC6和VS的差别 xff0c 在VC6中我们只能依赖于CBITMAP HBITMAP以及BITMAP之间的转化关系 xff0c 而在VS中 xff0c 我们用CIMAGE类就可以全部搞定 xff0c
  • CDC中图片绘制到控件上

    CDC中 CDC gt StretchBlt xff08 int x xff0c int y xff0c int nWidth xff0c int nHeight xff0c CDC pSrcDC int xSrc int ySrc int
  • ESP8266/ESP32+OLED12864简单WiFi扫描器 支持OTA

    功能描述 OLED显示SSID 全中文界面 支持中文SSID Arduino OTA支持 硬件准备 ESP8266 NodeMCU WiFi ESP32 WIFI 43 BLE 43 OLED开发板 OLED控制芯片 SSD1315兼容SS
  • C#用到windows 消息列表Message类MSG的id代号

    C Constants private const UInt32 WM ACTIVATE 61 0x0006 private const UInt32 WM ACTIVATEAPP 61 0x001C private const UInt3
  • C++ Map用法详解

    用法汇总 insert 插入一个元素 size 获得map中元素的个数 max size 获得map所能容纳的元素个数 count 判断是否存在某个key xff0c 存在为返回1 find 查找某个key erase 删除指定的元素 cl