Javatpoint标志
Javatpoint标志

c++中的关联容器

c++标准库提供了各种高效的容器。这些容器只是各种存储数据结构的模式版本。其他版本,如标准库中基于模板的算法实现和迭代器,也是可用的。然而,容器只是用来存放物品的。为了实现模块化,容器必须被模板化。这使得容器可以容纳几乎所有数据类型的对象。

每个容器都有一组成员函数,其中大多数共享这些函数的相似原型子集。这给编码人员提供了一个显著的好处,可以快速地弄清楚函数名提供了什么,并理解即使容器类型发生变化也如何利用它们。这里只考虑有序关联容器。

c++为我们提供了各种各样的容器,每个容器都有自己的一组应用程序。关联容器是c++容器的一种类型。在本课程结束时,您应该理解为什么它们被称为“关联”容器。

在c++中,关联容器存储“排序数据”,这与其他容器类型不同。因此,搜索和访问信息要快得多。然而,这确实意味着输入的数据将花费更多的时间(将其放置在正确的位置)。

c++中的所有容器类型都是类模板,这意味着它们可以存储各种各样的数据类型。此外,它们利用相同的声明机制,使其易于理解、记忆和操作各种容器类型。

设置容器

c++ Set容器与其他关联容器的区别在于它包含“唯一的和排序的”数据。使用unique意味着该容器中没有两个数据元素是相似的。输入的任何冗余将很快消除。

下面提供了一个简短的代码示例来演示Set Container的操作。

c++程序:

输出:

输出:5 0 1 2 3 4

多套集装箱

除了一个例外,Multi-Set与Set Container几乎完全相同。与Set容器不同,Multi-set容器允许在其容器中保留元素的副本。

除此之外,您对Set应用的操作也与Multi-Set兼容。

地图的容器

Map容器与其他关联容器的不同之处在于,它将数据存储为键值对。Key类似于值的标识特性,因为它用于从Map检索和获取值。凭证必须是不同的,但值可以不是。

如果您熟悉Python中的dictionary,那么c++中的map非常相似。

下面是一些使用基本Map Container方法的代码。

c++程序:

输出:

键值:1值:葡萄键值:2值:番石榴键值:3值:西瓜

为了在Map中插入数据,我们应用insert()和pair,就像使用Set Container一样。Insert()输入数据,而pair()将其更改为合适的格式。

为了得到它,我们使用迭代器和for循环遍历映射中的所有Key-Value对。第一个属性用于返回Key,而第二个属性用于获取Value。所以迭代器是一个引用,我们需要使用->。

Multi-Map容器

Multi-Map与map类似,但有一个例外。键不需要是不同的;它们可能是彼此的复制品。而且,这些重复键的值必须是不同的。简而言之,作为键或值必须是不同的。Multi-Map不能包含两个相同的Key-Value对。

除了声明中的一个小变化外,所有其他类型的执行都类似于标准映射。


下一个话题 c++初学者书籍





Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map