如何在c+中访问列表中的列表+;? P>好的,所以我开始学习C语言,现在我正在学习C++,所以我对它有点陌生。 在C#中,当我想访问列表中的列表时,我只需使用嵌套for each循环 既然C++中不知道如何使用每个循环,我尝试访问带有循环的嵌套列表。
这是我的密码:如何在c+中访问列表中的列表+;? P>好的,所以我开始学习C语言,现在我正在学习C++,所以我对它有点陌生。 在C#中,当我想访问列表中的列表时,我只需使用嵌套for each循环 既然C++中不知道如何使用每个循环,我尝试访问带有循环的嵌套列表。,c++,C++,这是我的密码: int main { list<list<char *> > moves; list<char *> pointers; list<list<char> > undoValues; list<char> undoValue; for(list<list<char *> >::iterator outer=moves.begi
int main
{
list<list<char *> > moves;
list<char *> pointers;
list<list<char> > undoValues;
list<char> undoValue;
for(list<list<char *> >::iterator outer=moves.begin();outer!=moves.end();outer++)
{
for(list<char *>::iterator inner=outer.begin();inner!=outer.end();inner++)
{
}
}
}
int main
{
列出动作;
列表指针;
列出未记录的值;
列出价值;
for(list::iterator outer=moves.begin();outer!=moves.end();outer++)
{
for(list::iterator internal=outer.begin();internal!=outer.end();internal++)
{
}
}
}
我有两个错误:
error 'struct std::_List_iterator<std::list<char*>,std::allocator<char *> > >' has no member named begin
error 'struct std::_List_iterator<std::list<char*>,std::allocator<char *> > >' has no member named end
错误“struct std::_List_iterator>”没有名为begin的成员
错误“struct std::_List_iterator>”没有名为end的成员
如何访问嵌套列表?您需要使用(*outer)来获取迭代器指向的内容:
list<char *> pointers;
list<list<char> > undoValues;
list<char> undoValue;
for(list<list<char *> >::iterator outer=moves.begin();outer!=moves.end();outer++)
{
for(list<char *>::iterator inner=(*outer).begin();inner!=(*outer).end();inner++)
{
}
}
列表指针;
列出未记录的值;
列出价值;
for(list::iterator outer=moves.begin();outer!=moves.end();outer++)
{
对于(列表::迭代器内部=(*外部).begin();内部!=(*外部).end();内部++)
{
}
}
您需要使用(*outer)来获取迭代器指向的内容:
list<char *> pointers;
list<list<char> > undoValues;
list<char> undoValue;
for(list<list<char *> >::iterator outer=moves.begin();outer!=moves.end();outer++)
{
for(list<char *>::iterator inner=(*outer).begin();inner!=(*outer).end();inner++)
{
}
}
列表指针;
列出未记录的值;
列出价值;
for(list::iterator outer=moves.begin();outer!=moves.end();outer++)
{
对于(列表::迭代器内部=(*外部).begin();内部!=(*外部).end();内部++)
{
}
}
for(list::iterator outer=moves.begin();outer!=moves.end();outer++)
对于(列表::迭代器内部=外部->开始();内部!=外部->结束();内部++)
for(list::iterator outer=moves.begin();outer!=moves.end();outer++)
对于(列表::迭代器内部=外部->开始();内部!=外部->结束();内部++)
您需要取消对迭代器的引用以访问元素。您可以使用*
或->
:
for(list<char *>::iterator inner=outer->begin();inner!=outer->end();inner++)
for(列表::迭代器内部=外部->开始();内部!=外部->结束();内部++)
或
for(list::iterator internal=(*outer).begin();internal!=(*outer.end();internal++)
您需要取消对迭代器的引用以访问元素。您可以使用*
或->
:
for(list<char *>::iterator inner=outer->begin();inner!=outer->end();inner++)
for(列表::迭代器内部=外部->开始();内部!=外部->结束();内部++)
或
for(list::iterator internal=(*outer).begin();internal!=(*outer.end();internal++)
要访问迭代器引用的对象的成员,需要间接寻址;因此outer
列表的begin()
成员是outer->begin()
,而不是outer.begin()
。同样地,对于end()
要访问迭代器引用的对象的成员,您需要间接寻址;因此outer
列表的begin()
成员是outer->begin()
,而不是outer.begin()
。同样,对于end()