溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++ STL常用算法有哪些

發(fā)布時間:2021-11-29 15:31:45 來源:億速云 閱讀:138 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“C++ STL常用算法有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

##查找算法
####adjacent_find()
在iterator對標(biāo)識元素范圍內(nèi),查找一對相鄰重復(fù)元素,找到則返回指向這對元素的第一個元素的迭代器。否則返回past-the-end。

vector<int> vecInt;    vecInt.push_back(1);    vecInt.push_back(2);    vecInt.push_back(3);    vecInt.push_back(4);    vecInt.push_back(5);    vecInt.push_back(5);    vector<int>::iterator it = adjacent_find(vecInt.begin(), vecInt.end());

####binary_search
在有序序列中查找value,找到則返回true。注意:在無序序列中,不可使用。

set<int> setInt;    setInt.insert(2);    setInt.insert(1);    setInt.insert(8);    setInt.insert(5);    setInt.insert(9);    bool bFind = binary_search(setInt.begin(),setInt.end(),8);

####count()
利用等于操作符,把標(biāo)志范圍內(nèi)的元素與輸入值比較,返回相等的個數(shù)。

vector<int> vecInt;    vecInt.push_back(8);    vecInt.push_back(2);    vecInt.push_back(1);    vecInt.push_back(4);    vecInt.push_back(8);    vecInt.push_back(6);    int iCount = count(vecInt.begin(),vecInt.end(),8);  //iCount==2

####count_if()
count_if 算法計算中的元素范圍 [first, last),返回滿足條件的元素的數(shù)量。

vector<int> vecInt;    vecInt.push_back(3);    vecInt.push_back(3);    vecInt.push_back(1);    vecInt.push_back(4);    vecInt.push_back(8);    vecInt.push_back(9);    int count = count_if(vecInt.begin(), vecInt.end(), evenNumber);// 偶數(shù)個數(shù)是 2;

####find
利用底層元素的等于操作符,對指定范圍內(nèi)的元素與輸入值進(jìn)行比較。當(dāng)匹配時,結(jié)束搜索,返回該元素的迭代器。

####equal_range:
返回一對iterator,第一個表示lower_bound,第二個表示upper_bound。

##查找算法
merge()
以下是排序和通用算法:提供元素排序策略
merge:    合并兩個有序序列,存放到另一個序列。
例如:vecIntA,vecIntB,vecIntC是用vector聲明的容器,vecIntA已包含1,3,5,7,9元素,vecIntB已包含2,4,6,8元素
vecIntC.resize(9);  //擴(kuò)大容量
merge(vecIntA.begin(),vecIntA.end(),vecIntB.begin(),vecIntB.end(),vecIntC.begin());
此時vecIntC就存放了按順序的1,2,3,4,5,6,7,8,9九個元素
####sort()
sort:  以默認(rèn)升序的方式重新排列指定范圍內(nèi)的元素。若要改排序規(guī)則,可以輸入比較函數(shù)。

random_shuffle()
random_shuffle:     對指定范圍內(nèi)的元素隨機(jī)調(diào)整次序。

“C++ STL常用算法有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI