【发布时间】:2014-10-09 19:42:37
【问题描述】:
我有两个QVector<double>s x 和y。实际上,向量表示数据点 A(x[0], y[0]), B(x[1],y[1]) 等等。现在我想对x 进行排序并修改y 以便数据点仍然像A(x[n], y[n])。例如,如果我有 x{3,6,1,5} 和 y{9,2,1,5} 我应该收到:x{1,3,5,6} 和 y{1 ,9,5,2}。有什么算法吗?
【问题讨论】:
-
我不知道 Qt 中有什么算法可以解决问题。是否可以创建一个将 x 和 y 结合在一起的结构?然后你可以实现它的比较运算符来比较 xs,这样这些结构的向量就可以传递给任何排序算法。否则恐怕你必须自己实现排序。
-
我应该注意到性能非常重要。我的
QVectors 长度为数千,因此不适合创建新的QVector、QMap或其他容器。我会将数据点存储在QMap中,但我需要将 x 值(和 y 值)存储在相邻的内存中。