gpt4 book ai didi

c++ - 模板化 printMap 未编译

转载 作者:行者123 更新时间:2023-11-28 06:35:22 25 4
gpt4 key购买 nike

试图实现一个 printMap 类,这显然是为了打印我正在使用的 map 的内容,它没有编译提示 std::map<>::iterator 中的输入类型。我如何摆脱这个问题并编译它?

template <class tagType, class valueType>
void printMap (const std::map<tagType, valueType>& myMap)
{
if (myMap.size()== 0)
return;
if (DEBUG_PRINT) {
std::map<tagType, valueType>::const_iterator it = myMap.begin();
std::map<tagType, valueType>::const_iterator itEnd = myMap.end();
std::cout << "================================================================================" << std::endl;
for (; it != itEnd; it++)
std::cout << (*it).first << ":" << (*it).second << std::endl;
std::cout << "================================================================================" << std::endl;
}
return;
}

error: need ‘typename’ before ‘std::map::const_iterator’ because ‘std::map’ is a dependent scope std::map::const_iterator it = myMap.begin(); ^

最佳答案

因此,您也可以使用以下循环
for(__typeof(myMap.begin()) it = (myMap.begin()); it!= myMap.end(); it++)
*声明新变量(指针)it 等于大小myMap.begin(),循环将增加到it不同于 myMap.end()

关于c++ - 模板化 printMap 未编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26869514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com