Я пытаюсь создать карту типа
std::map<std::map <std::string,std::string>, MyDataTyp*>,
поэтому ставлю
std::map<std::string, std::string>
в отдельном классе, например:
class TagList {
public:
std::map<std::string, std::string> _map;
TagList() {}
~TagList() {}
void addTag(const std::string tag, const std::string value) { if (tag != "") _map[tag] = value; }
std::string getValue(const std::string tag) {
std::map<std::string, std::string>::iterator it = _map.find(tag);
if (it == _map.end()) return ("");
else return (it->second);
}
};
inline bool operator< (const TagList &a, const TagList &b) {
std::map<std::string, std::string>::iterator it ;
for (it = a._map.begin(); it != a._map.end(); it++) {
std::string myVal1 = it->second;
std::string myVal2 = b._map.find(it->first);
if (myVal2 == "") return false;
if (strcmp(myVal1.c_str(),myVal2.c_str()) > 0) return true;
}
return false;
}
Надеюсь, кто-то может объяснить мне сообщение об ошибке
Ошибка 4, ошибка C2679: двоичный файл '=': не найден оператор, который принимает правый операнд типа 'std :: _ Tree_const_iterator <_Mytree>' (или нет приемлемого преобразования) (...)
... и в чем причина моего признания ....