c++ map string做key
时间: 2023-07-03 14:25:40 浏览: 130
是一个常见的做法。在 C++ 中,`std::map` 是一个关联容器,它存储着一些 key-value 对,其中 key 按照一定的顺序进行排序,且每个 key 唯一。因此,如果你需要使用字符串作为 key,可以使用 `std::map<std::string, ...>` 来定义该容器。例如:
```c++
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> myMap;
// 插入 key-value 对
myMap["hello"] = 1;
myMap["world"] = 2;
// 访问 key 对应的 value
std::cout << myMap["hello"] << std::endl; // 输出 1
std::cout << myMap["world"] << std::endl; // 输出 2
return 0;
}
```
在上面的例子中,我们定义了一个 `std::map<std::string, int>` 类型的容器 `myMap`,并插入了两个 key-value 对。然后,我们使用 `myMap["hello"]` 和 `myMap["world"]` 来访问相应的 value 值。由于 key 是字符串类型的,因此我们需要用双引号将其括起来。
相关问题
c++ map 获取所有key
可以通过遍历 map 中的所有元素,获取所有的 key。以下是一个示例代码:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {
{1, "one"},
{2, "two"},
{3, "three"},
{4, "four"}
};
// 遍历 map 获取所有 key
std::cout << "All keys in the map: ";
for (auto const& element : myMap) {
std::cout << element.first << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
All keys in the map: 1 2 3 4
```
在上面的代码中,我们使用了 C++11 的 range-based for 循环来遍历 map 中的所有元素,然后通过 `element.first` 获取每个元素的 key。
c++ map删除指定key值的元素
使用C++中的map容器,可以通过以下代码删除指定key值的元素:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 删除key为2的元素
myMap.erase(2);
// 遍历map
for (auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出结果为:
```
1: one
3: three
```
其中,erase()函数用于删除指定key值的元素,其参数为要删除的key值。在上述代码中,我们删除了key为2的元素,最终输出结果中只剩下了key为1和3的元素。
阅读全文