【发布时间】:2010-06-08 07:44:09
【问题描述】:
我目前有一个 std::vector,它持有双精度的 std::vector。我想按双向量的第二个元素对其进行排序。前任: 我不是按 MyVec[0] 或 myvec[1] 排序,而是根据 myvec[0][1] myvec[1][1] 对 myVec[0] 和 myvec[1] 进行排序。基本上按包含的值排序,而不是其中的对象。
所以如果 myvec[0][1] 小于 myvec[1][1] 那么 myvec[0] 和 myvec[1] 将交换。 谢谢
【问题讨论】:
-
有什么原因不能从数组中复制键值然后排序以防止出现竞争条件?
-
@Michael,上面介绍的比赛条件怎么样?就个人而言,我更关心的是确保这个向量向量中的每个元素至少有 2 个元素。我将被包括使用
at函数而不是下标运算符,只是为了抓住这一点。 -
根据比较的编写方式,在排序的中途,元素[1]可能会因排序而改变,然后如果值未缓存,可能会发生不好的事情。
标签: c++