📜  C++ STL中的嵌套列表(1)

📅  最后修改于: 2023-12-03 15:29:51.384000             🧑  作者: Mango

C++ STL中的嵌套列表

在C++ STL中,我们经常会使用容器来存储数据,例如vector、list、map等。而嵌套列表就是指在一个容器中存储另一个容器,我们可以通过这种方式来实现多级的数据结构。

在一个vector中存储vector

首先,让我们来看看如何在一个vector中存储另一个vector。

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<vector<int>> v;
    v.push_back({1, 2, 3});
    v.push_back({4, 5});
    v.push_back({6, 7, 8, 9});
    
    for (const auto& inner_v : v) {
        for (const auto& num : inner_v) {
            cout << num << " ";
        }
        cout << endl;
    }
    
    return 0;
}

在这个例子中,我们创建了一个vector并且在其中存储了三个不同的vector。然后,我们使用两个for循环来遍历这个嵌套的vector并打印出每个数字。

输出结果如下:

1 2 3 
4 5 
6 7 8 9
在一个list中存储list

我们也可以在一个list中存储另一个list。下面是一个示例:

#include <iostream>
#include <list>

using namespace std;

int main() {
    list<list<int>> l;
    l.push_back({1, 2, 3});
    l.push_back({4, 5});
    l.push_back({6, 7, 8, 9});

    for (const auto& inner_l : l) {
        for (const auto& num : inner_l) {
            cout << num << " ";
        }
        cout << endl;
    }

    return 0;
}

在这个例子中,我们创建了一个list并且在其中存储了三个不同的list。然后,我们使用两个for循环来遍历这个嵌套的list并打印出每个数字。

输出结果如下:

1 2 3 
4 5 
6 7 8 9 
在一个vector中存储list

我们也可以在一个vector中存储list,下面是一个示例:

#include <iostream>
#include <vector>
#include <list>

using namespace std;

int main() {
    vector<list<int>> v;
    v.push_back({1, 2, 3});
    v.push_back({4, 5});
    v.push_back({6, 7, 8, 9});

    for (const auto& inner_l : v) {
        for (const auto& num : inner_l) {
            cout << num << " ";
        }
        cout << endl;
    }

    return 0;
}

在这个例子中,我们创建了一个vector并且在其中存储了三个不同的list。然后,我们使用两个for循环来遍历这个嵌套的vector并打印出每个数字。

输出结果如下:

1 2 3 
4 5 
6 7 8 9 
总结

嵌套列表是一种有用的数据结构,可以帮助我们轻松存储多级数据。在C++ STL中,我们可以在一个容器中存储另一个容器来实现多级数据结构。无论是vector、list还是其他容器,都可以被嵌套在另一个容器中。