嵌套的 STL 数据结构

Nested STL datastructure

实际上我在 C++ 中遇到嵌套 Stl 的问题,那就是如何遍历嵌套的 stl。

#include<iostream>
#include<vector>
#include<list>
#include<map>
using namespace std;
int main(void) 
{
    vector< vector<int> > vc;
    vector<int> vc1;
    map<int , list<int > > mp;
}

现在我如何在 vector < vector <int > > 中输入并打印 vc 的每个元素, 同样,我如何在 map < int , list < int > > mp 中输入信息 并打印对应于 map 的每个键的每个列表。

让我们一起做吧。 vector<int> v; vector 是分配了 new 运算符的纯数组的包装器,因此可以通过应用指针运算来访问其元素。 v[i], *(v.begin() +i) 访问第 i 个元素。从 0 开始索引。 如何迭代

for(int i = 0; i < v.size; i++) cout << v[i] << endl;
for(int x: v) cout << v[i] << endl;
for(auto it = v.begin(); it != v.end(); ++it) cout << v[i] << endl;

再举个例子 map<int, list<int> > mp; 它不是线性数据结构,而是树形数据结构。 但是迭代是相似的。 for(auto node: mp) 其中节点是 std:: pair<int, list<int>> 在此 for 循环中,您可以使用表达式 node.second 获取 list<int> 并以类似的方式遍历它。

for(const auto &node: mp)// node is pair<int, list<int>>
{  int key = node.first;
   cout << key << " ";
   for(auto elem: node.second) // elem is int
      cout << elem << " ";
   cout << endl;
}