std::map c++
时间: 2023-07-01 13:25:04 浏览: 117
std::map 是 C++ 标准库中的关联容器,它提供了一种键值对的映射关系,并且会按照键的字典序自动排序。可以使用该容器实现字典、统计词频等功能。
使用 std::map 需要包含头文件 <map>,其中定义了该容器的类模板。定义一个 std::map 可以使用以下语法:
```c++
std::map<Key, Value> map_name;
```
其中,Key 和 Value 分别指定了键和值的类型。例如,定义一个键为字符串,值为整数的 std::map 可以使用以下语句:
```c++
std::map<std::string, int> word_count;
```
使用 std::map 插入元素可以使用 insert() 函数,删除元素可以使用 erase() 函数。查询元素可以使用 [] 运算符或者 find() 函数。例如,插入一个键值对可以使用以下语句:
```c++
word_count.insert(std::pair<std::string, int>("hello", 1));
```
使用 [] 运算符可以直接访问一个键对应的值,例如:
```c++
int count = word_count["hello"];
```
如果键不存在,则会自动插入一个新的键值对,值为默认值。使用 find() 函数可以查找一个键对应的迭代器,例如:
```c++
std::map<std::string, int>::iterator it = word_count.find("hello");
if (it != word_count.end()) {
int count = it->second;
}
```
以上就是 std::map 的基本用法。需要注意的是,std::map 内部实现使用红黑树,插入、删除、查询的时间复杂度都是 O(log n),但是相比于 std::unordered_map,std::map 具有自动排序的特性,因此更适合于需要按照键的顺序访问元素的场合。
阅读全文