我有以下与迭代使用定义的字符串关联数组有关的问题std::map
。
-- snip --
class something
{
//...
private:
std::map<std::string, std::string> table;
//...
}
在构造函数中,我使用与字符串数据关联的字符串键对填充表。在其他地方我有一个方法toString
,它返回一个字符串对象,该对象包含表对象中包含的所有键和关联数据(作为键=数据格式)。
std::string something::toString()
{
std::map<std::string, std::string>::iterator iter;
std::string* strToReturn = new std::string("");
for (iter = table.begin(); iter != table.end(); iter++) {
strToReturn->append(iter->first());
strToReturn->append('=');
strToRetunr->append(iter->second());
//....
}
//...
}
当我尝试编译时,出现以下错误:
error: "error: no match for call to ‘(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >) ()’".
有人可以向我解释缺少什么,我做错了什么吗?hash_map
在用户必须定义散列函数才能hash_map
与std::string
对象一起使用的情况下,我只发现了一些关于类似问题的讨论。在我的情况下也可能是类似的东西吗?