std::map 使用方法
时间: 2023-05-31 12:07:27 浏览: 184
std::map 是一个关联式容器,使用键值对的形式存储数据。可以通过 key 查找相应的 value。以下是一个简单的示例:
```cpp
std::map<std::string, int> myMap;
myMap["one"] = 1;
myMap["two"] = 2;
myMap["three"] = 3;
std::cout << myMap["two"] << std::endl; // 输出 2
for (auto const& x : myMap)
{
std::cout << x.first << ":" << x.second << std::endl;
}
/*
输出:
one:1
three:3
two:2
*/
```
其中,字符串作为 key,整型作为 value。可以使用 [] 运算符来访问和设置元素,也可以使用迭代器遍历元素。
相关问题
std::map使用方法
std::map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。下面是std::map的使用方法:
1. 包含头文件:首先需要包含<map>头文件。
2. 定义map对象:使用std::map<key_type, value_type>来定义一个map对象,其中key_type是键的类型,value_type是值的类型。例如,可以定义一个存储整数到字符串的映射关系的map对象:std::map<int, std::string> myMap;
3. 插入元素:可以使用insert()函数向map中插入元素。插入元素时需要指定键和值。例如,可以插入一个键值对(1, "one")到myMap中:myMap.insert(std::make_pair(1, "one"));
4. 访问元素:可以使用[]运算符或者at()函数来访问map中的元素。例如,可以通过键1来访问对应的值:"std::cout << myMap;" 或者 "std::cout << myMap.at(1);"
5. 查找元素:可以使用find()函数来查找指定键的元素。如果找到了,则返回指向该元素的迭代器;如果没有找到,则返回指向末尾的迭代器。例如,可以查找键为1的元素:auto it = myMap.find(1); if (it != myMap.end()) { // 找到了元素 }
6. 删除元素:可以使用erase()函数来删除指定键的元素。例如,可以删除键为1的元素:myMap.erase(1);
7. 遍历元素:可以使用迭代器来遍历map中的所有元素。例如,可以使用for循环遍历myMap中的所有键值对:for (auto it = myMap.begin(); it != myMap.end(); ++it) { std::cout << it->first << ": " << it->second << std::endl; }
8. 其他操作:std::map还提供了一些其他的操作,如获取map的大小(size())、判断map是否为空(empty())等。
std::unordered_map<std::string, std::unordered_map<std::string, std::vector<double>>> Data初始化
这是一个关于C++语言中unordered_map的初始化的问题,可以回答。在C++中,unordered_map是一种关联容器,可以使用花括号初始化列表来初始化。对于这个问题,可以使用以下代码进行初始化:
std::unordered_map<std::string, std::unordered_map<std::string, std::vector<double>>> Data = {
{"key1", {{"subkey1", {1.0, 2.0, 3.0}}, {"subkey2", {4.0, 5.0, 6.0}}}},
{"key2", {{"subkey3", {7.0, 8.0, 9.0}}, {"subkey4", {10.0, 11.0, 12.0}}}}
};
这样就可以初始化一个嵌套的unordered_map,其中包含两个键值对,每个键值对都包含两个子键值对,每个子键值对都包含一个double类型的向量。
阅读全文