提问人:Ashish Kumar Gupta 提问时间:10/2/2019 最后编辑:François AndrieuxAshish Kumar Gupta 更新时间:4/5/2021 访问量:261
嵌套 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
答:
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;
}
评论