博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ map容器-57-对组和map构造/赋值
阅读量:4301 次
发布时间:2019-05-27

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

这篇开始学习C++中的Map容器,也叫字典,字典中的元素是键值对形式存在的。在学习map容器之前,我们先学习C++中的一个对组的小知识点。然后学习map容器的构造和赋值相关API。

 

1.对组

概念:成对出现的数据,利用对组可以返回两个数据。这个特点有点类似python中的元组。

对组的两种创建方式

下面写简单的练习代码,练习对组的两种创建方式,和如何获取对组中两组数据的方法。

#include 
#include
using namespace std;void test01(){ // 对组创建方式1,有点像默认无参构造 pair
p("Anthony", 23); // 对组创建方法2 pair
p2 = make_pair("Tom", 18); // 如何访问对组中值 cout << "Name: " << p.first << " Age: " << p.second << endl; cout << "Name: " << p2.first << " Age: " << p2.second << endl;}int main(){ test01(); system("pause"); return 0;}

运行结果

 

2.map的构造和赋值

上面有了对组的理解,然后从对组概念过度到字典容器中键值对。

概念:

  • map中所有的元素都是pair
  • pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
  • 所有元素都会根据元素的键值自动排序

本质

map/multimap属于关联式容器,底层结构是用二叉树实现。

优点:

可以根据Key值快速找到value值

map和multimap的区别

  • map不允许容器中有重复的key值元素
  • multimap允许容器中有重复的key值元素

下面看看Map容器的构造相关API

构造和赋值相关函数原型

一个默认构造和拷贝构造,形式和前面其他容器一样。

#include 
#include
#include
using namespace std;void printMap(map
& m){ for(map
::iterator it = m.begin(); it != m.end(); it++) { cout << "Key= " << (*it).first << " ,Value= " << (*it).second << endl; }}void test01(){ // map容器的构造 map
m; // map容器添加元素 m.insert(pair
("Tom", 18)); m.insert(pair
("Anthony", 23)); m.insert(pair
("Bob", 24)); m.insert(pair
("Sunny", 19)); printMap(m); // map容器赋值操作 cout << "========================" << endl; map
m2 = m; printMap(m);}int main(){ test01(); system("pause"); return 0;}

运行结果

上面学习了:

  • 如何遍历map容器
  • map容器的插入操作,插入函数的参数是一个对组
  • map的构造和赋值操作

 

转载地址:http://vexws.baihongyu.com/

你可能感兴趣的文章
Windows 消息ID及定义大全
查看>>
TCP/IP通信程序设计方式
查看>>
C# 的TCPClient异步连接与异步读数据
查看>>
总结以下三种方法,实现c#每隔一段时间执行代码:
查看>>
c++的头文件与源文件
查看>>
struct的创建
查看>>
c++全局变量的正确声明
查看>>
C++函数声明和定义
查看>>
cpp之间函数引用和类引用的方法
查看>>
C++中头文件(.h)和源文件(.cpp)都应该写些什么
查看>>
学习C++ -> 类(Classes)的定义与实现
查看>>
在C++中调用DLL中的函数
查看>>
指针的详细使用介绍
查看>>
C语言入门之指针用法教程
查看>>
函数指针
查看>>
C++中的endl搭配cout和cin用法
查看>>
C++中对于类来说头文件(.h)和源文件(.cpp)都应该写些什么 (类的常规创建)
查看>>
c#的接口详解
查看>>
C语言中的全局变量定义与使用
查看>>
C,C++,C#note
查看>>