c++ map用法

std::map 是C++标准库中的一个关联容器,用于存储键值对(key-value pairs)。它的特性和用途如下:

  1. 键值对存储std::map 是一种关联容器,每个元素都由一个唯一的键(key)和一个值(value)组成。键用于标识数据的唯一性,值是与键相关联的数据。

    std::map<int, std::string> myMap;
    myMap[1] = "Apple";
    myMap[2] = "Banana";
    
  2. 有序性std::map 自动按照键的升序排序存储元素,因此每次插入新元素时,元素会根据键的排序规则(默认使用operator<)放入适当位置。

  3. 键的唯一性:在 std::map 中,每个键都是唯一的,重复的键不会插入。如果尝试插入具有相同键的元素,新的值会覆盖原来的值。

  4. 底层实现std::map 通常基于红黑树等自平衡二叉搜索树实现,因此查找、插入和删除操作的时间复杂度为 (O(\log n)),适合频繁查找和排序的场景。

  5. 常用操作

    • 插入元素:使用 insert()operator[]、或 emplace() 方法。
    • 访问元素:使用 operator[] 或 at() 方法。
    • 查找元素:使用 find() 方法。
    • 删除元素:使用 erase() 方法。

例子

#include <iostream>
#include <map>
#include <string>

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

    // 插入元素
    myMap[1] = "Apple";
    myMap[3] = "Cherry";
    myMap[2] = "Banana";

    // 遍历并输出元素
    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    // 查找元素
    auto it = myMap.find(2);
    if (it != myMap.end()) {
        std::cout << "Found: " << it->second << std::endl;
    }

    return 0;
}

输出结果

1: Apple
2: Banana
3: Cherry
Found: Banana

在此例子中,myMap 中的元素根据键值自动排序,因此遍历时按键的升序输出。

posted @ 2024-11-06 23:21  海_纳百川  阅读(85)  评论(0)    收藏  举报
本站总访问量