1

バイナリ検索で値を見つけようとしていますが、エラーが発生し続けます: no match for 'operator==' in '(& itemNumb)->std::vector<_Tp, _Alloc>::operator [], std::アロケータ > >(((std::vector >::size_type)middle)) == 値'| 私はすでにベクトルをソートしており、エラーの原因がまったくわかりません。

    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 ++にはかなり慣れていません。

4

1 に答える 1