У меня есть следующий метод:Невозможно назначить Список итератора [C++]
void* vpArr_t::operator[](int i) const
{
if (!isEmpty() && i >= 0 && i < nOfItems)
{
list<void*>::iterator it;
int idx;
for(it = array.begin(), idx = 0; idx < i; ++it, ++idx); // go to the i'th element
return *it;
}
else
{
return NULL;
}
}
Где:
array
является тип списка.
Я получаю красное подчеркивание (ошибку компиляции) в следующей строке:
for(it = array.begin(), idx = 0; idx < i; ++it, ++idx);
на:
it = array.begin()
он говорит, что я Тринг, чтобы установить list<void*>::const_iterator
в list<void*>::iterator
тип.
Но я заметил, что есть перегрузка iterator
для метода begin()
. как решить эту ошибку? Я использую Visual C++ 2012.
Вы можете попробовать авто вместо списка :: iterator? –
ZoomIn