我在c++主函数外定义map<char, int> mymap; mymap['+'] = 0;报错此声明没有储存类
时间: 2024-03-01 20:56:25 浏览: 129
如果你在全局作用域(函数外部)定义了一个map对象,那么你需要保证该对象的定义是在所有函数之外的。同时,你需要在定义之前包含头文件<map>,并使用命名空间std。
在你的情况下,可能是因为你的代码中没有包含正确的头文件或者没有使用std命名空间。请确保你的代码中包含了以下语句:
```
#include <map>
using namespace std;
map<char, int> mymap;
```
如果还有错误,可能是其他地方的问题。建议你检查一下完整的代码并定位错误。
相关问题
unordered_map<char, int> 用法
unordered_map<char, int> 是 C++ STL 中的一个容器,用于存储键值对,其中键为 char 类型,值为 int 类型。它的用法类似于字典,可以通过键来访问对应的值。下面是一个简单的例子:
```c++
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<char, int> myMap;
myMap['a'] = 1;
myMap['b'] = 2;
myMap['c'] = 3;
cout << "The value of key 'a' is: " << myMap['a'] << endl;
cout << "The value of key 'b' is: " << myMap['b'] << endl;
cout << "The value of key 'c' is: " << myMap['c'] << endl;
return 0;
}
```
输出结果为:
```
The value of key 'a' is: 1
The value of key 'b' is: 2
The value of key 'c' is: 3
```
map<char, vector<string>>这个数据结构该怎么初始化
可以使用以下代码初始化 `map<char, vector<string>>` 数据结构:
```c++
#include <map>
#include <vector>
#include <string>
using namespace std;
int main() {
map<char, vector<string>> myMap;
// 初始化
myMap['a'] = {"apple", "ant", "airplane"};
myMap['b'] = {"banana", "bee", "bus"};
// 访问
vector<string> vecA = myMap['a'];
vector<string> vecB = myMap['b'];
return 0;
}
```
这里我们使用了大括号初始化器来初始化 `vector<string>`,并将其作为值存储到了 `map<char, vector<string>>` 中。初始化后,我们可以通过键值(即字符)来访问对应的值(即字符串向量)。
阅读全文