[C ++具有向量多个条件的二进制搜索

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

所以我正在做一个分配,我需要在向量中搜索具有4个变量的对象。字符串,字符串,整数,整数。我是编程新手。如果仅使用第一个字符串进行搜索,则可以使用二进制搜索。但不确定如何使其匹配所有四个字段。

向量按第一个字符串排序,如果第一个字符串匹配,然后按第二个字符串排序,如果第二个字符串匹配,然后按第一个int排序,等等。>>

到目前为止,我的代码是

bool Room::searchRoom(string name, string initial, int number1, int number2) {

    size_t mid, left = 0;
    size_t right = testVector.size();
    while (left < right) {
        mid = left + (right - left) / 2;
        if (name > testVector[mid].getName()) {
            left = mid + 1;
        } else if (name < testVector[mid].getName()) {
            right = mid;
        } else {
            return true;
        }
        return false;
    }
}

所以我正在做一个分配,我需要在向量中搜索具有4个变量的对象。字符串,字符串,整数,整数。我是编程新手。如果我只搜索...,我就可以使用二进制搜索引擎了...

c++ vector binary-search
2个回答
2
投票

像讲故事的人说的。这是将第二个变量添加到比较中的方法,我让您做第三个和第四个。


3
投票

您可以将operator<添加到您的班级(或cmp函数)然后使用经典算法。

© www.soinside.com 2019 - 2024. All rights reserved.