Я пытаюсь найти значение через двоичный поиск, но я все время получаю ошибку об ошибке: нет соответствия для 'operator ==' in '(& itemNumb) -> std :: vector < _Tp, _Alloc> :: operator [], std :: allocator>> (((std :: vector> :: size_type) middle)) == value '| У меня уже есть отсортированный вектор, который полностью не уверен в том, что вызвало ошибку.Проблема с двоичным поиском с участием векторов (C++)
void Search(vector<string>& itemNumb, vector<string>& itemName, vector<double>& itemCost, vector<int>& itemQuant)
{
int left, right, value, middle;
left = 0;
right = itemNumb.size();
cout << "Please enter desired item number." << endl;
cin >> value;
while (left <= right)
{
middle = ((left + right)/2);
if (itemNumb[middle] == value)
{
cout << "Item is " << itemName[middle] << endl;
cout << "Price is " << itemCost[middle] << endl;
cout << "Amount in stock is " << itemQuant[middle] << endl;
}
else if (itemNumb[middle] > value)
{
right = (middle - 1);
}
else
{
left = (middle + 1);
}
}
if (intNumb[middle] != value)
{
cout << "Item number not found." << endl;
}
}
Каждый оператор if дает ту же ошибку, что и оператор «operator ==» или «operator>». Любая помощь вообще была бы замечательной, я нахожусь в своем остроумие, пытаясь понять это, довольно новое для C++.
Спасибо за быстрый ответ! Я попробовал то, что вы сказали, но потом он сказал, что to_string не является членом std. –
@ ZacharyMcCloud: Возможно, ваша реализация стандартной библиотеки не полностью совместима с C++ 11. Вы можете попробовать подход 'std :: ostringstream', тогда как в ответе я связал –
ошибка: aggregate 'std :: ostringstream out' имеет неполный тип и не может быть определен | это то, что я получил, когда я попробовал этот метод. –