嵌套的 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;
}
实际上我在 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;
}