我想创建一张地图,
std::map <MESSAGE_CATEGORY, const std::string> m_mapResponseDesc;
我operator[]用来在地图中追加一个值:
m_mapResponseDesc[STATUS_LIMIT] = "Limit has been exceeded";
Run Code Online (Sandbox Code Playgroud)
STATUS_LIMIT是类型的enum.
我收到错误:
错误C2678:binary'=':找不到运算符,它接受类型为'const std :: basic_string <_Elem,_Traits,_Ax>'的左手操作数(或者没有可接受的转换)
请指出我做了什么错误.我没有得到任何线索.
Cha*_*had 10
由于operator[]返回引用(对a const std::string),您将需要使用该insert()方法.
#include <map>
#include <string>
using namespace std;
int main()
{
std::map<int, const std::string> m;
m.insert(std::make_pair(1, "Hello"));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
C++ 11更新:
您现在可以更轻松地完成此操作:
std::map<int, const std::string> status = {
{200, "OK"},
{404, "Not Found"}
};
Run Code Online (Sandbox Code Playgroud)