我面臨的問題是std::find
返回<someVector>.end()
如果它失敗了,但如果你不知道如何<someVector
>?檢查如果std :: find在矢量向量中搜索失敗
結構進行搜索:使用散列函數 std::find
用於通過H [I] 函數簽名來搜索被發現外向量H的 的索引(i)hashtable
(類X的向量的向量H):<return val>
查找(哈希表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和處理完成,但如何返回迭代器,當我做到這一點?)
不要說'stl :: find',它是'std :: find'。 –
我不明白你的問題。如果沒有找到該值,'std :: find'會返回您傳遞給它的第二個迭代器參數(這通常是,但不必是'.end()')。所以只要檢查一下,看看'std :: find'是否失敗。如果你想獲得不同的東西,請稍微改述一下你的問題。 –
如果你提供你的代碼,理解你會更容易。 –