溫馨提示×

溫馨提示×

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

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

C++ STL常用算法有哪些

發布時間:2021-11-29 15:31:45 來源:億速云 閱讀:170 作者:iii 欄目:大數據

本篇內容介紹了“C++ STL常用算法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

##查找算法
####adjacent_find()
在iterator對標識元素范圍內,查找一對相鄰重復元素,找到則返回指向這對元素的第一個元素的迭代器。否則返回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()
利用等于操作符,把標志范圍內的元素與輸入值比較,返回相等的個數。

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),返回滿足條件的元素的數量。

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);// 偶數個數是 2;

####find
利用底層元素的等于操作符,對指定范圍內的元素與輸入值進行比較。當匹配時,結束搜索,返回該元素的迭代器。

####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);  //擴大容量
merge(vecIntA.begin(),vecIntA.end(),vecIntB.begin(),vecIntB.end(),vecIntC.begin());
此時vecIntC就存放了按順序的1,2,3,4,5,6,7,8,9九個元素
####sort()
sort:  以默認升序的方式重新排列指定范圍內的元素。若要改排序規則,可以輸入比較函數。

random_shuffle()
random_shuffle:     對指定范圍內的元素隨機調整次序。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女