21xrx.com
2024-12-23 01:16:41 Monday
登录
文章检索 我的文章 写文章
C++中的键值对(Key-Value)
2023-06-27 04:23:05 深夜i     --     --
C++ Map 类型 键值对容器 标准库映射容器 关联数组 索引访问元素

键值对(Key-Value)是一种常见的数据结构,它可以通过一个键(Key)来获取对应的值(Value),类似于字典或Map。在C++中,STL库中的map和unordered_map类都是用来实现键值对结构的常见类。

map类是基于红黑树实现的,它提供了一系列操作函数,如插入(insert)、查找(find)、删除(erase)和遍历(iterator)等,可以很方便地进行键值对的添加、查找和操作。同时,它还支持自定义的比较函数、自动排序和唯一性等特性。

unordered_map类则是基于散列表实现的,它使用哈希函数来快速地查找和插入键值对,比map在时间复杂度上更高效。它也提供了一系列操作函数,与map基本相同,同时也支持自定义哈希函数和自定义比较函数等。

下面是一个简单的C++代码示例,用以演示如何定义、插入和查找map类中的键值对:


#include <iostream>

#include <map>

using namespace std;

int main()

{

  map<string, int> myMapName; // 定义map,存储key为string类型,value为int类型

  // 插入数据,相当于myMapName["Tom"] = 18; myMapName["Andy"] = 20;

  myMapName.insert(make_pair("Tom", 18));

  myMapName.insert(make_pair("Andy", 20));

  // 查找数据

  map<string, int>::iterator it = myMapName.find("Tom"); // 返回指向"Tom"的迭代器

  if (it != myMapName.end()) // 如果存在"Tom"

    cout << it -> second << endl; // 输出18

  return 0;

}

上述代码中,利用map类定义了一个名为myMapName的键值对容器,将"Tom"和"Andy"作为键,18和20作为对应的值进行插入,然后通过迭代器查找"Tom"所对应的值并输出。

综上所述,C++的STL库中提供了map和unordered_map类用于实现键值对结构,我们可以灵活使用这些类,根据实际需求选取合适的数据结构来存储和操作键值对,以达到更好的效果和性能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复