所以我正在做一個任務,我需要搜索一個向量與4個變量的對象。 string,string,int,int。我對編程非常陌生。如果我只使用第一個字符串進行搜索,那麼我就可以使用二進制serach。但不知道如何使它匹配所有四個領域。C++二進制搜索與多個條件的向量
的載體由第一串排序,如果第一個字符串匹配,那麼通過第二串排序,如果第二個字符串匹配,那麼排序的,但首先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;
}
因此,如果第一個字符串匹配,則比較第二個字符串,如果匹配,則比較第一個字符串。整體比較的結果應該是最後一次不平等比較。 – StoryTeller
你的大括號不匹配。 –
我建議你分開二進制搜索的邏輯和比較兩個房間不同功能的邏輯。這會容易很多。 – jrok