C++中的双关键字映射表及示例
什么是双关键字映射表?
在C++中,双关键字映射表是一种关联式容器,用于以映射方式存储元素。在内部,它被实现为一个红黑树。双关键字映射表中的每个元素都被视为一个pair,第一个值被称为键,第二个值被称为值。双关键字映射表类似于映射,但在双关键字映射表的情况下,我们可以有多个相同的键。此外,我们不能使用方括号([])来访问与键相关联的值。与映射一样,双关键字映射表的键默认按升序排序。
与双关键字映射表相关联的功能:
- begin(): 返回迭代器以指向双关键字映射表的第一个元素
- end(): 返回迭代器以指向双关键字映射表中最后一个元素后面的理论元素
- size(): 返回双关键字映射表中元素的数量
- max_size(): 返回双关键字映射表可以容纳的最大元素数量
- empty(): 返回双关键字映射表是否为空
- insert(key, value): 将新的元素或pair添加到双关键字映射表中
- erase(iterator position): 删除迭代器指向的位置的元素
- erase(const x): 从双关键字映射表中删除键值对‘x’
- clear(): 从双关键字映射表中删除所有元素
什么是pair?
在C++的utility标头文件中,我们提供了pair容器。pair由两个数据元素或对象组成。
- 第一个元素引用为‘first’,第二个元素引用为‘second’,顺序固定(first,second)。
- Pair用于组合两个可能不同类型的值。Pair提供了一种将两个异构对象存储为单个单元的方法。
- Pair可以进行分配、复制和比较。在映射或哈希映射中分配的对象的数组默认为类型‘pair’,其中所有‘first’元素都是唯一键,与它们的‘second’ 值对象相关联。
要访问元素,我们使用变量名,后跟点运算符,后跟关键字first或second。
如何访问pair?
可以使用点(.)运算符访问pair的元素。
语法:
auto firstElement = myPair.first;
auto secondElement = myPair.second;
双关键字映射表
双关键字映射表是一种双关键字映射表,其中键或值之一本身就是pair。如果两个pair的相应的第一个和第二个元素相同,则它们被认为是相等的。现在如果需要存储多个pair的副本以及其他元素,并且还需要以排序或特定顺序存储它们,则在这种情况下,双关键字映射表非常有用。
语法:
**multimap <pair<dataType1,dataType2>> myMultimap; **
在此,dataType1和dataType2可以是相似或不同的数据类型。
示例1: 以下是演示双关键字映射表工作的C++程序。
输出
示例2: 下面是C++程序演示了一个由pair组成的multimap的工作原理。
输出