21xrx.com
2024-12-23 01:20:39 Monday
登录
文章检索 我的文章 写文章
C++中的字典实现
2023-07-05 16:23:47 深夜i     --     --
C++ 字典 实现

在C++中,字典实现是一种非常常见的数据结构。字典是一种能够关联键和值的容器,通常通过哈希表来实现。

在C++中,STL库提供了std::map和std::unordered_map两种字典容器的实现。其中,std::map是一个有序的字典容器,采用红黑树实现,具有较好的查找、插入和删除性能。std::unordered_map则是哈希表实现的字典容器,采用哈希函数来映射关键字到桶中,具有很快的查找、插入和删除性能。

以std::unordered_map为例,下面是一个使用示例:


#include <iostream>

#include <unordered_map>

int main() {

  std::unordered_map<std::string, int> myDict;

  // 插入键值对

  myDict["apple"] = 5;

  myDict.insert(std::make_pair("banana", 3));

  // 查找键值对

  if (myDict.find("apple") != myDict.end()) {

    std::cout << "apple: " << myDict["apple"] << std::endl;

  }

  // 删除键值对

  myDict.erase("banana");

  return 0;

}

在上面的示例中,我们创建了一个std::unordered_map容器,用来存储字符串和整型的键值对。我们可以使用myDict["apple"]来访问apple对应的值,并使用myDict.insert或myDict["key"] = value两种方法来插入键值对。我们可以通过myDict.find来查找某个键对应的值,并可以使用myDict.erase来删除某个键值对。

需要注意的是,std::unordered_map并不是有序的,也就是说,在枚举std::unordered_map中所有的键值对时,输出的顺序是随机的。

在C++中,字典容器是一种非常实用的数据结构,可以使用它来实现很多算法和数据结构。如果你需要存储一些键值对,并需要高效地进行查找、插入和删除操作,不妨使用一下std::map或std::unordered_map。

  
  

评论区

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