我有一組數字:在矢量檢查一組值
{2, 6, 8}
我想檢查是否這些數字中的任何都在我的向量:
std::vector<int> myVector;
我知道,我可以檢查每個單獨使用算法的std :: find:
auto iter1 = std::find(myVector.begin(), myVector.end(), 2);
auto iter2 = std::find(myVector.begin(), myVector.end(), 6);
auto iter3 = std::find(myVector.begin(), myVector.end(), 8);
if(iter1 != myVector.end() || iter2 != myVector.end() || iter3 != myVector.end())
std::cout << "A desired value was found in the vector!"
在此例如,只有三個數字,但真正的數字集會更大。而且,這看起來很乏味。有更好的解決方案嗎?
如果你有絕對沒有進一步的結構或關於你的數據的信息,然後不(複雜性)。您必須遍歷搜索空間和數據空間的整個交叉產品。當然,如果您找到結果,您可以儘早退出,但對於最糟糕的情況,想象一下隨機收集的數據不包含任何搜索項。 –