带有指针的映射的C++输出
C++ Output of a map with Pointers
我正在尝试打印我的地图中的输入
map<string, Ort*> Hashtable;
钥匙是一个字符串(城市的邮政编码(Objekt Ort*包含名称(字符串(和x,y坐标(双精度(。
我尝试打印地图:
for (it = Hashtable.begin(); it != Hashtable.end(); it++) {
cout << it->first << " " << it->second->GetOrtsname()
<< " (" << it->second->GetPosX() << " " << it->second->GetPosY() << ")" << endl;
}
错误输出:
error: no match for ‘operator=’ (operand types are ‘std::map<std::basic_string<char>, Ort*>::iterator {aka std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, Ort*> >}’ and ‘std::map<std::basic_string<char>, Ort*>::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, Ort*> >}’)
for (it = Hashtable.begin(); it != Hashtable.end(); it++) {
我似乎对真正读取错误输出视而不见多亏了Juancapanza
解决方案:
map<string, Ort*>::const_iterator it;
错误
错误:"operator="不匹配(操作数类型为'
std::map<std::basic_string<char>, Ort*>::iterator
{akastd::_Rb_tree_iterator<std::pair<const std::basic_string<char>, Ort*>>}
和std::map<std::basic_string<char>, Ort*>::const_iterator
(又称std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, Ort*> >
(
指的是以下语句:
it = Hashtable.begin()
它告诉你=
的RHS上的表达式类型和LHS的类型之间没有有效的转换。右侧为...const_iterator
,左侧为....iterator
。
其原因很可能是Hashtable
是const
对1的引用的const
映射。调用begin()
的const
重载时,会得到一个const_iterator
。这是不允许修改const
映射内容的机制。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词