更普遍的講,我們對(duì)于vector內(nèi)元素的需求不同,因此操作也有差異
- std::binary_search
//先對(duì)vector進(jìn)行排序,再使用二分查找,時(shí)間復(fù)雜度為O(logn)
//注意在C++中也有sort函數(shù),與python不同的是,它需要兩個(gè)參數(shù),分別是vector的開頭元素,和vector的結(jié)尾元素
sort(v.begin(), v.end());
//這里的key就是我們要確認(rèn)是否存在于vector中的元素
if (std::binary_search(v.begin(), v.end(), key))
//若存在,返回true;不存在返回false
- std::find
該方法優(yōu)點(diǎn)是,找到目標(biāo)元素后立即返回,很快!
#include <iostream>
#include <vector>
#include <algorithm>
using std::vector;
using std::count;
using std::cout;
using std::endl;
int main()
{
vector<int> v{ 4, 7, 9, 1, 2, 5 };
int key = 2;
if (std::find(v.begin(), v.end(), key) != v.end())
{
cout << "Element found" << endl;
}
else
{
cout << "Element NOT found" << endl;
}
return 0;
}
- std::cout
與find相對(duì)應(yīng),cout是在遍歷所有元素后才返回
代碼只需要將上述條件語(yǔ)句改為if (count(v.begin(), v.end(), key))即可
本文摘自 :https://www.cnblogs.com/