gpt4 book ai didi

c++ - 排序 vector 的最快方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:19:39 24 4
gpt4 key购买 nike

我想按距离变量对“mystruct”进行排序,最快的方法是什么?

struct MyStruct {
int scale;
bool pass;
float distance;
};
vector<MyStruct> mystruct;
...
sort (mystruct.begin(), mystruct.begin() + mystruct.size());
//this doesn't work since is trying to sort by "MyStruct" and not by a number

如果我有一个

vector<float> myfloat;
...
sort (myfloat.begin(), myfloat.begin() + myfloat.size());

然后将完美地工作。

最佳答案

你需要自己写operator<为你的结构。

应该是这样的

bool operator<( const MyStruct& s1, const MyStruct& s2 )
{
// compare them somehow and return true, if s1 is less than s2
// for your case, as far as I understand, you could write
// return ( s1.distance < s2.distance );
}

另一种选择是写一个函数对象,但这里没必要,写operator<更容易(对于初学者)

关于c++ - 排序 vector 的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com