30.全面解析STL关联式容器:map、multimap、set、multiset及其无序版本详解

1.前言

紧接前面章节的序列化容器,本章开始讲解STL中的关联式容器。

关联式容器与上面的序列式容器最大的区别就是,序列式容器是按顺序的存储所有元素,访问元素的方式是通过下标,或遍历

而关联式容器则采用给每一个分配一个,我们访问元素的方式就是直接通过,就能得到它的,总结来说就是,关联式容器存储的是一个键值对,而序列式容器只存储

2.pair

在了解各个关联式容器之前, 我们必须来看一看各个容器存储的基本单元:键值对,即这里介绍的pair

它的使用方法非常简单:

#include<iostream>
#include<utility> //pair所在头文件
using namespace std;
int main() {
	pair<int, string> p;
	p.first = 10;
	p.second = "csdn";
}

首先我们需要理解一下它的实现过程。

因为它是用来存储两个变量的,所以它的模板参数有两个,分别指定即可,其中第一个为 的类型,第二个为的类型,我这里指定的键为int,值为string类型。

然后我们就可以直接通过它的first属性与second属性来分别给键与值进行赋值。

这基本就是它的所有用法,但如果在容器中添加一个pair元素,每次都这样写的话,还是有点麻烦的。

所以可以直接初始化:

pair<int, string> p{10,"www.kucoding.com"};

为了更加便捷的生成一个pair,还提供了一个函数来生成pair:

make_pair<int, string>(10, "www.kucoding.com");

它可以直接返回一个生成好的pair,类型为intstring组成的键值对。

但还是太长了, 所以我们还可以进一步简化:

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux