【发布时间】:2013-05-17 10:00:00
【问题描述】:
我正在尝试通过二进制搜索查找值,但我不断收到错误错误:'(& itemNumb)->std::vector<_tp _alloc> 中的'operator==' 不匹配::operator[], std::allocator >>(((std::vector >::size_type)middle)) == value'|我已经对向量进行了排序,我完全不确定是什么导致了错误。
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++ 来说是很新的。
【问题讨论】:
标签: c++ function vector binary-search