C++ STL 库 map
C++标准模板库(STL)的 map 是一种关联容器,它存储的元素是键值对,键唯一,值可以重复。map 的内部实现是一种平衡二叉搜索树(红黑树),这使得它的查找、插入、删除操作的时间复杂度都是 O(log n)。
map 的主要优点是,它能够快速地根据键查找对应的值。这是因为 map 的内部实现保证了元素始终是排序的,因此可以使用二分查找算法。这与其他的顺序容器(如 vector 和 list)不同,它们的查找操作的时间复杂度是 O(n)。
你可以使用 map 的 insert 成员函数来插入元素。insert 函数的参数是一个 std::pair 对象,其中第一个元素是键,第二个元素是值。例如:
如果你试图插入一个已经存在的键,map 不会替换旧的值,而是忽略新的插入。如果你想要替换一个已经存在的键的值,你可以使用下标操作符[]。例如:
你也可以使用下标操作符[]来插入新的键值对。如果键不存在,map 会创建一个新的键值对,值是该类型的默认值。然后返回对应的值的引用,你可以使用这个引用来修改值。例如:
你可以使用 find 成员函数来查找一个键。find 函数的参数是一个键,如果找到,它返回一个指向键值对的迭代器。如果没找到,它返回 map::end。例如:
你可以使用 erase 成员函数来删除一个键。erase 函数的参数是一个键或一个指向键值对的迭代器。例如:
你可以使用 begin 和 end 成员函数来获取指向 map 首元素和尾元素后一位置的迭代器,然后使用这些迭代器来遍历 map。例如:
或者使用 C++11 引入的范围 for 循环:
总的来说,map 是一个非常强大的数据结构,它提供了快速查找的能力,同时也支持高效的插入和删除操作。这使得它在许多情况下都是理想的选择,特别是当你需要根据键快速查找值的时候。
蓝易云-五网CN2服务器【点我购买】蓝易云采用KVM高性能架构,稳定可靠,安全无忧!蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。
海外免备案云服务器链接:www.tsyvps.com
蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。
评论