技术文摘
C++函数的STL映射具体有哪些
2025-01-09 03:18:03 小编
C++函数的STL映射具体有哪些
在C++编程中,标准模板库(STL)提供了丰富的容器和算法,其中映射(map)是一种非常有用的数据结构。映射提供了一种键值对的存储方式,允许快速查找和访问数据。下面将介绍C++函数中常见的STL映射。
1. std::map
std::map 是最常用的映射容器之一。它基于红黑树实现,能够自动按照键的升序排列键值对。这使得在查找、插入和删除操作时具有较好的时间复杂度,通常为对数时间O(log n)。
示例代码如下:
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "one";
myMap[2] = "two";
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
2. std::unordered_map
std::unordered_map 是基于哈希表实现的映射容器。它不保证键值对的顺序,但在平均情况下,查找、插入和删除操作的时间复杂度为常数时间O(1)。然而,在最坏情况下,时间复杂度可能会退化为线性时间O(n)。
示例代码如下:
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> myUnorderedMap;
myUnorderedMap[1] = "one";
myUnorderedMap[2] = "two";
for (const auto& pair : myUnorderedMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
3. std::multimap
std::multimap 与 std::map 类似,但它允许一个键对应多个值。也就是说,std::multimap 中可以存在多个具有相同键的键值对。
4. std::unordered_multimap
std::unordered_multimap 是 std::unordered_map 的多值版本,同样基于哈希表实现,允许一个键对应多个值。
C++的STL提供了多种映射容器,开发者可以根据具体的需求选择合适的映射类型。如果需要有序的键值对存储,可选择 std::map 或 std::multimap;如果更注重查找效率且不关心顺序,std::unordered_map 或 std::unordered_multimap 可能是更好的选择。
- 15 个架构设计关键概念
- 亚马逊推出新 JS 运行时,速度快 10 倍,Node.js 或被替代?
- 谷歌主导 Dart 升级 为生成式 AI 另辟蹊径 取代 JavaScript 未果
- 共话 Golang 中的 for 循环
- 面试官:虚拟机内存结构包含什么?
- 每日一技:Python 工具脚本调用外层模块的方法
- 微服务那些事,你知晓多少?
- Windows DWM 内存泄漏相关问题
- 表单与试卷零代码搭建平台技术深度解析推荐
- Go 中高效遍历目录的几种方法探索
- 2024 年.NET 框架的发展趋势展望
- Python 中 Pickling 与 Unpickling 的差异探索
- Electron 29.0.0 重磅发布 跨平台桌面应用开发神器
- 2024 年 Rust 持续走热
- AR 与 IOT:有趣技术组合的用例探索