IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> STL之map容器的讲解(C++) -> 正文阅读

[系统运维]STL之map容器的讲解(C++)

以下是对map容器的讲解:
map容器有一个索引值,相当于位置,还有一个就是我们的真值,map容器和set容器一样会自动进行排列,底层也是二叉树。

#include<iostream>
using namespace std;
#include<map>
void print(map<int,int>&m)
{
	for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
	{
		cout << "key值为:" << (*it).first << " " << "初始化的值为: " << it->second << endl;
	}
	cout << endl;
}
//以下是pair的初始化
void initializepair()
{
	//对组创建的两种方式
	pair<string, int>p1("小刘", 20);
	cout << "姓名:" << p1.first << " " << " 年龄:" << p1.second << endl;
	pair<string, int>p2 = make_pair("小王", 26);
	cout << "姓名:" << p2.first << " " << " 年龄:" << p2.second << endl;
}
//以下是map容器的初始化,构造的用法
void test1()
{
	//由于map容器是对组,所以创建的时候需要两个数据类型,且插入数组的时候需要用pair来创建且map容器也会自动进行排列
	map<int, int>m;
	m.insert(pair<int, int>(1, 6));
	m.insert(pair<int, int>(3, 8));
	m.insert(pair<int, int>(2, 1));
	m.insert(pair<int, int>(4, 2));
	print(m);
	map<int, int>m2(m);
	print(m2);
	map<int, int>m3;
	m3 = m2;
	print(m3);
}
//以下是交换功能的实现和求大小,判空的实现
void test2()
{
	map<int, int>m2;
	m2.insert(pair<int, int>(1, 16));
	m2.insert(pair<int, int>(3, 18));
	m2.insert(pair<int, int>(2, 21));
	m2.insert(pair<int, int>(4, 22));
	if (m2.empty())
	{
		cout << "为空!" << endl;
	}
	else
	{
		cout << "不为空!" << endl;
	}
	cout << "大小为:" << m2.size() << endl;
	map<int, int>m3;
	m3.insert(pair<int, int>(5, 56));
	m3.insert(pair<int, int>(6, 58));
	m3.insert(pair<int, int>(7, 51));
	m3.insert(pair<int, int>(8, 52));
	cout << "未交换前:" << endl;
	print(m3);
	cout << "交换后:" << endl;
	m2.swap(m3);
	print(m3);
}
//以下是插入和删除函数
void test3()
{
	map<int, int>m3;
	//m3.insert(2,66);//运行时会报错,错误的方法
	//以下两种就是创建对组的方式进行插入
	m3.insert(pair<int, int>(1, 10));//相当于用了匿名对象
	m3.insert(make_pair(2, 20));
	m3.insert(map<int, int>::value_type(3, 30));//不建议使用
	m3[4] = 40;//一般用[]来获取值,不用来进行插入操作。
	print(m3);
	m3.erase(m3.begin());//删除起始位置的元素
	print(m3);
	m3.erase(3);//删除key为3所对应的数值
	print(m3);
	m3.erase(m3.begin(),m3.end());//相当于清空操作
	print(m3);
	m3.clear();
	print(m3);
}
//以下是find函数和统计count函数
void test4()
{
	map<int, int>m4;
	m4.insert(pair<int, int>(1, 11));//相当于用了匿名对象
	m4.insert(make_pair(2, 22));
	m4.insert(map<int, int>::value_type(3, 33));
	m4[4] = 55;
	m4.insert(pair<int, int>(3, 88));
	print(m4);
	map<int,int>::iterator it=m4.find(4);
	if (it != m4.end())
	{
		cout << "找到了且key和值分别为:" << (*it).first << "  " << it->second<<endl;
	}
	else
	{
		cout << "没有找到!" << endl;
	}
	//对于map而言和set容器一样,没有重复插入的操作
	cout << "个数为:" << m4.count(3) << endl;
}
//在最新的c++版本中,运行不了,但是存在这种技术,利用仿函数去重载,进行降序排列
//class Compare
//{
//public:
//	//由于是降序排列,所以是a>b
//	int operator()(int a, int b)
//	{
//		return a > b;
//	}
//};
//void test6()
//{
//
//	map<int, int,Compare>m6;
//
//	m6.insert(pair<int, int>(1, 16));
//	m6.insert(pair<int, int>(3, 18));
//	m6.insert(pair<int, int>(2, 21));
//	m6.insert(pair<int, int>(4, 22));
//	for (map<int, int, Compare>::iterator it = m6.begin(); it != m6.end(); it++)
//	{
//		cout << (*it).first << it->second << endl;
//	}
//	cout << endl;
//}
int main()
{
	test1();
	test2();
	test3();
	test4();
	system("pause");
	return 0;
}

希望我的代码能对大家起到一点点的帮助。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:48:54  更:2021-10-25 12:50:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:42:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码