gpt4 book ai didi

c++ - 链接方法时转换类型错误

转载 作者:行者123 更新时间:2023-11-30 02:16:07 26 4
gpt4 key购买 nike

我迷失了这段 C++ 代码,它涉及遍历结构 RouteInfo 中包含的列表。 .为什么代码会显示此编译错误:Severity Code Description Project File Line Suppression State
Error (active) E0312 no suitable user-defined conversion from "std::_List_const_iterator<std::_List_val<std::conditional_t<true, std::_List_simple_types<int>, std::_List_iter_types<int, size_t, ptrdiff_t, int *, const int *, int &, const int &, std::_List_node<int, void *> *>>>>" to "std::_List_iterator<std::_List_val<std::conditional_t<true, std::_List_simple_types<int>, std::_List_iter_types<int, size_t, ptrdiff_t, int *, const int *, int &, const int &, std::_List_node<int, void *> *>>>>" ...

问题代码

void iterateOverListInStruct(std::multimap<RouteInfo, int> aMap)
{
std::multimap<RouteInfo, int /* vehicle id */>::iterator it = aMap.begin();
for (; it != aMap.end(); it++)
{
std::list<int>::iterator itr = it->first.secList.begin();
}
}

这段代码没有显示任何编译器错误?

void iterateOverListInStruct(std::multimap<RouteInfo, int> aMap)
{
std::multimap<RouteInfo, int /* vehicle id */>::iterator it = aMap.begin();
for (; it != aMap.end(); it++)
{
std::list<int> list = it->first.secList;
std::list<int>::iteartor itr = list.begin();
}
}

这是类 RouteInfo :

class RouteInfo{
public:
list<int>secList;}

最佳答案

value_typestd::multimapstd::pair<const Key, T> , 所以 it->first.secListconst std::list<int> , 和 begin()它返回 std::list<int>::const_iterator

您的第二个示例将其复制到新的非常量 std::list<int> 中和 begin() 返回的迭代器类型然后是std::list<int>::iterator

修复错误更改 itr输入 std::list<int>::const_iterator

关于c++ - 链接方法时转换类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55366846/

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