c++列表中的列表

C++ list in list

本文关键字:列表 c++      更新时间:2023-10-16

我有两个列表

list<int> s;
list<std::list<int>> q;

,我做了下面的作业

q.push_front(s);

如何显示q的内容,因为

for (q_iterator = q.begin(); q_iterator != q.end(); ++q_iterator)
    for (s_iterator = q_iterator.begin(); s_iterator != q_iterator.end(); ++s_iterator)
        cout << *s_iterator;

给我一个错误?

你必须这样写

for (q_iterator = q.begin(); q_iterator != q.end(); ++q_iterator)
    for (s_iterator = q_iterator->begin(); s_iterator != q_iterator->end(); ++s_iterator)
        cout << *s_iterator;

或以下方式

for (q_iterator = q.begin(); q_iterator != q.end(); ++q_iterator)
    for (s_iterator = ( *q_iterator ).begin(); s_iterator != ( *q_iterator ).end(); ++s_iterator)
        cout << *s_iterator;

,前提是q_iterators_iterator已经声明。否则你可以写,例如

for ( auto q_iterator = q.begin; /*...*/ )

也可以使用基于范围的for语句。例如

for ( const auto &s : q )
{
    for ( int x : s ) std::cout << x << ' ';
    std::cout << std::endl;
}

你可能知道,但我只是想确保你记住角括号之间的空格。

std::list<std::list<int> >