C++程序按值对字典进行排序

2023年 9月 7日 49.2k 0

C++程序按值对字典进行排序

有一些被称为字典的数据结构在各种计算机语言中可用。一种特殊形式的更快的数据结构,它根据键和值存储数据,就是字典。它将键值对保留在那里,以便可以通过键快速搜索某些组件,几乎实时。类似字典的数据结构包含在C++ STL语言标准中。这个数据结构被称为"map"。map生成任何类型的键和值对(类型必须在编译之前定义,因为我们使用的是C++)。在本节中,我们将看看如何使用C++根据其值对字典条目进行排序。

我们首先看一下地图数据结构是如何定义的。这些内部模板需要两种。所需的库和语法显示如下 -

定义地图数据结构的语法

#include
map mapVariable;

登录后复制

要在本例中使用地图数据结构,我们必须导入“map”库。这需要类型 1 和 2 的数据。 Type1 表示键参数的数据类型,而 type2 表示值类型。从地图类型类派生的对象称为mapVariable。现在让我们研究一下如何根据这些关键因素来组织地图。

使用Vector of Pairs

在这个想法中,我们只是创建了一个键值对的向量(动态数组,它是从C++ STL中获得的另一个元素)。然后通过创建比较函数进行排序。然后将内容再次以排序的格式存储到一个map中。

算法

  • 以地图 M 作为输入

  • 定义一个动态数组 A 来存储键值对

  • 对于 M 中的每个键值对 p,执行

    • 将 p 插入 A

  • 结束

  • 按照它们的键对A进行排序

  • 创建空地图newMap

  • 对于 A 中的每对 p -

    • 将对 p 插入 newMap

  • 结束

  • 返回新地图

示例

#include
#include
#include
#include
using namespace std;

// Create a comparator function to perform key-value pair comparison
bool compare ( pair &a, pair &b ){
return a.second < b.second;
}

//Define sorting function to sort given dictionary or map
map sorting( map givenMap ){
vector pairVec;
map newMap;

for ( auto& it : givenMap ) {
pairVec.push_back( it );
}

sort( pairVec.begin(), pairVec.end(), compare);

for ( auto& it : pairVec ) {
cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论