gpt4 book ai didi

c++ - 按所述结构的特定成员对结构数组进行排序?

转载 作者:行者123 更新时间:2023-11-30 02:53:47 24 4
gpt4 key购买 nike

基本上,我有一个 struct,它与其他成员一起有 xyz 表示 3D 点的值;然后我有一个由某些函数构建的所述结构的 vector 。

struct myStruct{
char x;
char y;
char z;
// some other members
};

vector<myStruct> myVector = myVectorBuildingFunction(...);

现在,我想根据 vector 中的结构体的 3D 点(x、y、z 成员)和空间中的另一个变量点之间的距离对结构体进行排序。一个(相对较多)还是完全重做我的初始 vector 构建函数?

最佳答案

您可以将 std::sort 与 lambda 一起使用,如下所示:

myStruct pointOfInterest = ...; // Set the point of interest
sort(mMyClassVector.begin(), mMyClassVector.end(),
[&](const myStruct & lhs, const myStruct & rhs) -> bool
{
double distanceLhs = computeDistance(pointOfInterest, lhs);
double distanceRhs = computeDistance(pointOfInterest, rhs);
return distanceLhs < distanceRhs;
});

关于c++ - 按所述结构的特定成员对结构数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17635119/

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