提示信息

C++ 中 map 和 set 的介绍与使用

距离感 已关注

在 C++ 中,mapset 是标准模板库(STL)中两种常用的关联容器。它们都基于红黑树实现,因此具有良好的平均时间复杂度特性。下面是对它们的介绍和基本使用方法:

map

介绍

  • map 是一种关联容器,用于存储键值对。其中每个键都是唯一的,并且一个键关联一个对应的值。
  • 键和值的类型可以是不同的类型。
  • map 自动对键进行排序,因此元素总是以升序排序。

常用操作

  • 插入元素:可以使用 insert 函数或 [] 运算符。
    std::map<std::string, int> myMap; myMap.insert({"apple", 5}); // 使用 insert myMap["banana"] = 10; // 使用 [] 运算符
  • 访问元素:通过 [] 运算符来访问或者修改元素。
    int num_apples = myMap["apple"];
  • 删除元素:用 erase 函数来删除元素。
    myMap.erase("banana");
  • 查找元素find 函数返回一个迭代器,指向查找到的元素。
    auto it = myMap.find("apple"); if (it != myMap.end()) { // 找到了元素 }
  • 获取大小:使用size 函数获取元素个数。
    size_t size = myMap.size();

set

介绍

  • set 是一个集合,存储唯一元素,并且按照特定顺序(默认升序)自动排序。
  • set 中不允许重复元素。

常用操作

  • 插入元素:使用 insert 函数。
    std::set<int> mySet; mySet.insert(3); mySet.insert(1); // 添加元素
  • 删除元素:使用 erase 函数。
    mySet.erase(3);
  • 查找元素find 函数返回一个迭代器,指向查找到的元素。
    auto it = mySet.find(1); if (it != mySet.end()) { // 找到了元素 }
  • 检查元素是否存在count 函数,而结果只能是 0 或 1。
    if (mySet.count(1) > 0) { // 1 存在于集合中 }
  • 获取大小:使用 size 函数获取集合中元素的个数。
    size_t size = mySet.size();

这两种容器通常用于需要快速查找的场景中,因为它们能够在 O(log n) 时间复杂度内进行插入、删除和查找操作。这使得 mapset 在许多算法和数据处理任务中极为有用。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
距离感 关注 已关注

最近一次登录:2024-11-19 20:36:23   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图