21xrx.com
2025-03-17 14:23:39 Monday
文章检索 我的文章 写文章
C++中的键值对容器
2023-07-11 08:13:58 深夜i     124     0
C++ STL容器 关联容器 map类型 unordered_map类型 键值对数据结构

C++中的键值对容器是一种非常方便的数据结构,它可以用来存储一组具有关联关系的数据。键值对容器由键和值组成,其中键用来标识数据,而值则是与键关联的实际数据。

C++中的键值对容器有很多种,比如map、unordered_map、set等。其中,map是最常用的一种容器,它是一种有序的键值对容器,可以根据键的大小进行排序,查找速度非常快,适合用于大量数据的存储。而unordered_map则是一种无序的键值对容器,不会对键进行排序,查找速度也很快,适合用于快速查找数据。

在使用键值对容器时,我们需要定义键和值的类型,并且需要实现一个比较函数来进行键的比较。以下是一个简单的例子:

#include <iostream>
#include <map>
using namespace std;
bool cmp(const string& s1, const string& s2)
  return s1 < s2;
int main()
{
  map<string, int, decltype(cmp)*> m(cmp);
  m["apple"] = 1;
  m["banana"] = 2;
  m["orange"] = 3;
  for(auto& p : m)
  
    cout << p.first << ":" << p.second << endl;
  
  return 0;
}

在这个例子中,我们定义了一个map容器,它的键是字符串类型,值是整数类型。我们还定义了一个比较函数cmp,用于比较字符串类型的键。在定义map容器时,我们需要将比较函数cmp传递给容器,以进行键的比较。最后,我们向map中插入了三组键值对,并遍历输出了它们的值。

总的来说,C++中的键值对容器是一种非常实用的数据结构,它可以快速地查找和存储一组具有关联关系的数据。在使用键值对容器时,我们需要根据实际需求选择不同的容器类型,并定义好键和值的类型以及比较函数。

  
  

评论区