C++ 在标准::向量\u数据上排序

C++ 在标准::向量\u数据上排序,c++,C++,我需要关于std::vector\u数据排序程序的帮助。 排序标准可以在索引i1、i2、i3。。。以递增方式对_数据进行排序。i1是一个 浮点*i1_数据=_数据[i1] 如何实现它?您可以编写一个比较函子 struct float_cmp{ bool operator()(float *f1, float *f2){ return (*f1) < (*f2); } } std::sort(myvec.begin(), myvec.end(), float

我需要关于std::vector\u数据排序程序的帮助。 排序标准可以在索引i1、i2、i3。。。以递增方式对_数据进行排序。i1是一个 浮点*i1_数据=_数据[i1]


如何实现它?

您可以编写一个比较函子

struct float_cmp{
    bool operator()(float *f1, float *f2){
        return (*f1) < (*f2);
    }
}

std::sort(myvec.begin(), myvec.end(), float_cmp);

听起来你要么想要一个boost multiindex,要么想要一个包含所有数据成员的结构的单个向量,而不是每个都有一个数据类型的多个向量。

当我对i1_数据、另一个i2_数据、i3_数据进行排序时,这将不起作用,而iN_数据必须根据i1_数据中的索引进行交换。我不太明白你当时想做什么。你能详细说明一下你想完成什么吗?我不知道你的问题是什么。下面是一个尝试来破解你的问题。您有一系列N个浮点数组,通过这些数组调用i1_数据到iN_数据,并使用float*指针进行引用。假设它们都是相同的长度,所以这实际上是一个矩阵。出于某种原因,您选择在i1_数据中存储整数索引,并希望根据i1_数据中给定的顺序对所有其他数组进行排序。我接近了吗?顺便说一句,如果你一开始就更仔细地说明问题,以避免这种猜测,那将是很有帮助的。