如何找到结构向量中的成员?

问题描述 投票:0回答:0

我一直在尝试编写一个程序,该程序发现 a 取结构向量中第一个成员的最大值,然后将其与第二个成员的 -1 和 +1 的值一起删除。但是我似乎总是在运行时错误中运行,不知道我在哪里失败或其他任何事情。还在学习向量。

这是我尝试写的,SOM[] 是数组,值成员是 .v,搜索到的成员是 .ref :

sort(SOM.begin(),SOM.end(),my_cmp);

    int k= SOM.size();
    while(k != 0)
    {
        if(SOM[k-1].v > 0)
        {
            result += SOM[k-1].v;
            int a = SOM[k-1].ref;
            SOM[find_if(SOM.begin(),SOM.end(),[&cm = a](const S& m) -> bool { return (cm-1) == m.ref; }) - SOM.begin()].v = 0;
            SOM[find_if(SOM.begin(),SOM.end(),[&cm = a](const S& m) -> bool { return (cm+1) ==   m.ref; }) - SOM.begin()].v = 0;
            SOM[k-1].v = 0;
        }
        k--;
    }

编辑:我已经使用自定义比较功能对向量进行了很好的排序。

search vector c++17
© www.soinside.com 2019 - 2024. All rights reserved.