我具有以下坐标类型:
template <typename T1, typename T2>
struct coords {
T1 x;
T2 y;
};
std::vector<coords<int, int>> pixels;
,我想使用x[]
或任何其他可以处理它的函数对y[]
和std::sort
进行排序。作为一种解决方法,我想到了将x
和y
复制到单独的向量中,然后分别对它们使用std::sort
,最后将结果复制回pixels
。
我想到了:
for (auto ita : pixels) {
for (auto itb : pixels) {
if (ita.x > itb.x) std::swap(ita.x, itb.x);
if (ita.y > itb.y) std::swap(ita.y, itb.y);
}
}
只是想知道是否有更有效的方法。