Я заблудился в этом фрагменте кода 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;}