所以我正在做一个分配,我需要在向量中搜索具有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个变量的对象。字符串,字符串,整数,整数。我是编程新手。如果我只搜索...,我就可以使用二进制搜索引擎了...
像讲故事的人说的。这是将第二个变量添加到比较中的方法,我让您做第三个和第四个。
您可以将operator<
添加到您的班级(或cmp
函数)然后使用经典算法。