【发布时间】:2017-03-29 04:37:06
【问题描述】:
我正在尝试获取 std::pair 并使用 std::map 将其映射到 std::string。它的工作方式是给定一个由一个字符和一个字符串组成的对,将其映射到一个特定的字符串。
到目前为止,这个设置工作得很好(编译器接受它):
std::map<std::pair<char, std::string>, std::string> mymap;
std::map<std::pair<char, std::string>, std::string>::iterator it;
但是当我尝试这样做时:
mymap['a', "Q1"] = "Q4";
mymap['b', "Q2"] = "Q3";
mymap['c', "Q3"] = "Q2";
mymap['d', "Q4"] = "Q1";
它作为我不理解的错误返回:
Error 1 error C2679: binary '[' : no operator found which takes a right-hand operand of type 'const char [3]' (or there is no acceptable conversion)
这是四行代码左括号下相关的错误(出现红色波浪)
谁能帮我理解我做错了什么?
【问题讨论】:
-
像 mymap[{'a', "Q1"}] = "Q4"; 那样做
标签: c++ string mapping stdmap std-pair