Проблема, с которой я сталкиваюсь, заключается в том, что std::find
возвращает <someVector>.end()
, если это не удается, но что, если вы не знаете, что <someVector
> ??
Структура для поиска: hashtable
(вектор H векторов класса X) индекс (i) внешнего вектора H находится с использованием хеш-функции std::find
, которая используется для поиска по сигнатуре H [i] -функции: <return val>
lookup (hashtable H,) [<return val>
является дескриптором элемента, найденного поиском, так что мы можем изменить его значение по мере необходимости]
vector<X>::iterator lookup (vector <vector <X>> &H, X some_value)
{
int index = hashFn(some_value);
return std::find(H[index].begin(), H[index].end(), some_value);
}
как мне проверить в этом случае, если поиск не удается ??(если я изменю вектор на массивы / указатели, я могу просто вернуть NULL и сделка будет завершена, но как мне сделать это при возврате итераторов ??)