谁能告诉我这行在下面的程序res.back().insert(end(res.back()), begin(ity->second), end(ity->second));
中正在做什么,如何
我想使用循环而不是上面的语句将元素分配给res,但是它将
如果您解释上述声明如何分配元素,并且对我有好处,
我该如何使用循环做同样的事情。
任务:https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree/
vector<vector<int>> verticalTraversal(TreeNode* r, vector<vector<int>> res = {}) {
map<int, map<int, set<int>>> m;
dfs(r, 0, 0, m);
for (auto itx = m.begin(); itx != m.end(); ++itx) {
res.push_back(vector<int>());
for (auto ity = itx->second.begin(); ity != itx->second.end(); ++ity) {
res.back().insert(end(res.back()), begin(ity->second), end(ity->second));
}
}
return res;
}
答案 0 :(得分:1)
res.back()
获取res
中的最后一个元素。
.insert(end(res.back()),
在此位置插入一些东西。
begin(ity->second), end(ity->second)
要插入的迭代器范围。
);
您可以指定这是一个循环
for (auto itz : ity->second)
res.back().push_back(itz);