嵌套 STL 数据结构

Nested STL datastructure

提问人:Ashish Kumar Gupta 提问时间:10/2/2019 最后编辑:François AndrieuxAshish Kumar Gupta 更新时间:4/5/2021 访问量:261

问:

实际上,在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 > >vcmap < int , list < int > > mp

C++ 列表 字典 向量 c++-standard-library

评论

0赞 Ashish Kumar Gupta 10/2/2019
在简单向量 <int> 中,我们将像 :- #include< iostream> #include<vector> 使用命名空间 std 进行遍历;int main(void){ vector <int> v(4); for(int i=0;一<4;i++){ cin>>v[i]; } vector<int>::iterator itr = v.begin();for(;itr!=v.end();itr++){ cout<<*itr<< “ ”;

答:

0赞 Hlib Pylypets 10/2/2019 #1

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

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;

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

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;
}