基于多个值类型对矢量进行排序

时间:2015-12-12 20:11:06

标签: c++

我希望根据多个值对自定义结构进行排序...我已经处理了我必须按2个不同数字排序的实例,只需使用< >在自定义排序方法...除了这次我必须按2布尔和一个数字排序。

struct MyStruct
{
B1 = false;
B2 = true;
N1 = 0;
}

现在......我希望它按以下方式排序......

任何有B1和B2的东西都是第一位的。 接下来会有任何有B1的东西。

这两个部分也需要按N1排序(较低=先到先得)

所以B1和B2需要从最低到最高的顺序排列。 紧随其后的是B1订购的N1从最低到最高。 其次是从最低到最高的其他一切。

这是我到目前为止的尝试......

    if (lhs.boss && lhs.isLOS && lhs.distancetome < rhs.distancetome)
        return true;
    if (lhs.boss && lhs.isLOS && lhs.distancetome > rhs.distancetome)
        return false;
    if (lhs.boss && lhs.distancetome < rhs.distancetome)
        return true;
    if (lhs.boss && lhs.distancetome > rhs.distancetome)
        return false;
    if (lhs.distancetome < rhs.distancetome)
        return true;

    return false;

1 个答案:

答案 0 :(得分:1)

类似的东西:

     Scanner scanner = new Scanner(System.in);
    System.out.print("Enter name: ");
    String input = scanner.nextLine();
    String result = "";
    char firstChar = input.charAt(0);
    char fUpper = Character.toUpperCase(firstChar);
    result = result + fUpper;
    for (int i = 1; i < input.length(); i++) {
        char currentChar = input.charAt(i);
        char cUpper = Character.toUpperCase(currentChar);
        char previousChar = input.charAt(i - 1);
        char pUpper = Character.toUpperCase(previousChar);
        if (pUpper == ' ')  {
            result = result + "." + cUpper;
        }
    }
    System.out.println("Initials Are: " + result);
    }

示例:http://coliru.stacked-crooked.com/a/b4888ac34d2ca6bb