0
的3D矢量我有以下向量声明:排序对C++
std::vector<std::vector<std::vector<std::pair<float, int>>>> depth;
我想通过自己的第一个元素按升序每个向量对排序。
排序:
for(std::vector<std::vector<std::pair<float,int>>> vec1 : depth) {
for(std::vector<std::pair<float,int>> vec2 : vec1) {
std::sort(vec2.begin(), vec2.end());
}
}
,然后打印:
for (std::vector<std::vector<std::pair<float,int>>> vec1 : depth) {
for (std::vector<std::pair<float, int>> vec2 : vec1) {
if(!vec2.empty() && (vec2.size() > 1)) {
for (std::pair<float, int> pr : vec2) {
std::cout << pr.first << " " << pr.second << " ";
}
std::cout << std::endl;
}
}
}
结果的一部分:
4.65514 1 3.10343 2
4.67043 1 3.11362 2
4.68594 1 3.12396 2
如何应该是:
3.10343 2 4.65514 1
3.11362 2 4.67043 1
3.12396 2 4.68594 1
任何帮助的赞赏,因为我真的用尽了事情,我无法弄清楚我做错了什么。
你整理的副本。错字。 – LogicStuff
使用引用进行排序std :: vector >>&vec1' –
Galik