gpt4 book ai didi

c++ - 无法分配列表迭代器 [C++]

转载 作者:行者123 更新时间:2023-11-28 00:44:57 25 4
gpt4 key购买 nike

我有以下方法:

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。

最佳答案

大概array是一个数据成员,而你在一个const成员函数中,所以你不能在数据成员上调用非const方法。所以你需要一个const_iterator:

list<void*>::const_iterator it,

关于c++ - 无法分配列表迭代器 [C++],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16714007/

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