C++ std::map 是什么定义?
在 C++ 中,std::map 是一个标准库容器,定义在
特性和定义
键值对存储:
std::map 存储的是键值对,每个元素由一个键和一个值组成。
键是唯一的,不能重复。
- 自动排序:
std::map 使用键的顺序来自动排序元素。
默认情况下,使用 < 运算符进行排序,但可以通过自定义比较函数来改变排序方式。
- 底层实现:
std::map 通常使用红黑树(red-black tree)实现,这使得插入、删除、查找操作的时间复杂度为 O(log n)。
- 定义:
std::map 是一个模板类,定义如下:
template <class Key, class T, class Compare = std::less, class Allocator = std::allocator<std::pair<const Key, T>>>
class map;
- Key 是键的类型,T 是值的类型,Compare 是用于排序的比较函数,Allocator 是用于内存分配的分配器。
基本用法:
#include
#include
#include
int main() {
std::map<std::string, int> ageMap;
// 插入元素
ageMap["Alice"] = 30;
ageMap["Bob"] = 25;
ageMap["Charlie"] = 35;
// 访问元素
std::cout << "Alice's age: " << ageMap["Alice"] << std::endl;
// 遍历元素
for (const auto& pair : ageMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
- 常用操作:
插入:map.insert({key, value}) 或 map[key] = value
查找:map.find(key) 返回一个迭代器,指向找到的元素或 map.end() 如果未找到。
删除:map.erase(key) 删除指定键的元素。
std::map 是一个强大且灵活的容器,适用于需要快速查找和有序存储的场景。

1180

被折叠的 条评论
为什么被折叠?



