📜  cpp 映射插入 - C++ (1)

📅  最后修改于: 2023-12-03 15:30:06.699000             🧑  作者: Mango

C++ 中的映射插入

在 C++ 中,映射是一种将键映射到值的数据结构。映射容器提供了高效的数据检索和插入方法,其时间复杂度为平均 $O(logn)$。容器中的元素是按照顺序存储的,并且每个元素都有一个关键字唯一标识。

实现映射插入的方法

有两种主要的方式来实现映射插入,第一种是使用 std::map,第二种是使用 std::unordered_map。其中,std::map 是一个有序映射,而 std::unordered_map是一个无序映射。

使用 std::map 进行映射插入

std::map 是一个有序映射容器,内部元素基于标准比较函数排序。在插入新元素时,容器会按照键值大小的顺序插入到正确的位置。下面是一个简单的示例代码,展示了如何使用 std::map 进行映射插入:

#include <iostream>
#include <map>

int main() {
  std::map<std::string, int> myMap;

  myMap.insert(std::pair<std::string, int>("foo", 1));
  myMap.insert(std::make_pair("bar", 2));
  myMap.emplace("baz", 3);

  for (auto const& [key, val] : myMap) {
      std::cout << key << ": " << val << std::endl;
  }

  return 0;
}

输出结果如下:

bar: 2
baz: 3
foo: 1
使用 std::unordered_map 进行映射插入

std::unordered_map 是一个无序映射容器,内部元素不会按照任何特定的顺序存储。在插入新元素时,容器会根据哈希函数计算键值的哈希码,然后将元素插入到相应的桶中。下面是一个简单的示例代码,展示了如何使用 std::unordered_map 进行映射插入:

#include <iostream>
#include <unordered_map>

int main() {
  std::unordered_map<std::string, int> myMap;

  myMap.insert(std::pair<std::string, int>("foo", 1));
  myMap.insert(std::make_pair("bar", 2));
  myMap.emplace("baz", 3);

  for (auto const& [key, val] : myMap) {
      std::cout << key << ": " << val << std::endl;
  }

  return 0;
}

输出结果如下:

baz: 3
foo: 1
bar: 2
总结

本文介绍了在 C++ 中实现映射插入的两种方法,分别是使用 std::mapstd::unordered_mapstd::map 是一个有序映射容器,std::unordered_map 是一个无序映射容器。无论使用哪种容器,插入新元素都非常简单,只需要调用相应容器的插入函数即可。