C++ STL庫(kù)應(yīng)用匯總
1、std::max_element的使用
std::min_element類似,求最小
#include <iostream>
#include <iterator>
#include <QApplication>
bool myfn( int i, int j )
{
return i < j;
}
int main( int argc, char* argv[] )
{
QApplication a( argc, argv );
std::list<int> zx {1, 2, 3, 8, 5, 44};
//方法一 調(diào)用函數(shù)
auto biggest = std::max_element( std::begin( zx ), std::end( zx ), myfn );
std::cout << "Max element is " << *biggest
<< " at position " << std::distance( std::begin( zx ), biggest ) << std::endl;
//方法二 調(diào)用Lamda表達(dá)式
auto nn = std::max_element( std::begin( zx ), std::end( zx ), []( int& i, int& j ) -> bool
{
return i < j;
} );
std::cout << "Max element is " << *nn
<< " at position " << std::distance( std::begin( zx ), biggest ) << std::endl;
return a.exec();
}
升級(jí)可以用到任務(wù)隊(duì)列管理中,通過(guò)任務(wù)優(yōu)先級(jí),選擇優(yōu)先級(jí)最高的任務(wù)
auto max_pos =
std::max_element( m_taskList.cbegin(), m_taskList.cend(),
[]( const TaskManagePtr & task1, const TaskManagePtr & task2 ) -> bool
{
return task1->priority() < task2->priority();
} );
知識(shí)點(diǎn)擴(kuò)展:
C++ 的標(biāo)準(zhǔn)模板庫(kù)(Standard Template Library,STL)是泛型程序設(shè)計(jì)最成功應(yīng)用的實(shí)例。STL 是一些常用數(shù)據(jù)結(jié)構(gòu)(如鏈表、可變長(zhǎng)數(shù)組、排序二叉樹)和算法(如排序、查找)的模板的集合,主要由 Alex Stepanov 主持開發(fā),于 1998 年被加入 C++ 標(biāo)準(zhǔn)。
有了 STL,程序員就不必編寫大多數(shù)常用的數(shù)據(jù)結(jié)構(gòu)和算法。而且 STL 是經(jīng)過(guò)精心設(shè)計(jì)的,運(yùn)行效率很高,比水平一般的程序員編寫的同類代碼速度更快。
有一種說(shuō)法,C++ 是用來(lái)編寫大程序的,如果只是編寫幾十上百行的小程序,用C語(yǔ)言就可以,沒(méi)有必要用 C++。
這個(gè)說(shuō)法是不準(zhǔn)確的??梢哉f(shuō),寫小程序沒(méi)必要用面向?qū)ο蟮姆椒?,但是?C++ 還是能夠帶來(lái)很大方便的,因?yàn)?C++ 中有 STL。哪怕編寫只有十幾行的程序,也可能會(huì)用到 STL 中提供的數(shù)據(jù)結(jié)構(gòu)和算法。例如對(duì)數(shù)組排序,用 STL 中的 sort 算法往往只需要一條語(yǔ)句就能解決,而不用像調(diào)用C語(yǔ)言庫(kù)函數(shù) qsort 那樣還要編寫比較函數(shù)。
以上就是C++ STL庫(kù)應(yīng)用匯總的詳細(xì)內(nèi)容,更多關(guān)于C++ STL庫(kù)應(yīng)用集合的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于OpenCV自定義色條實(shí)現(xiàn)灰度圖上色功能代碼
今天通過(guò)本文給大家分享基于OpenCV自定義色條實(shí)現(xiàn)灰度圖上色功能代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-11-11
C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
這篇文章主要介紹了C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例,并且轉(zhuǎn)換后會(huì)統(tǒng)計(jì)二進(jìn)制1的個(gè)數(shù),實(shí)例簡(jiǎn)單明了,需要的朋友可以參考下2014-06-06
C語(yǔ)言實(shí)現(xiàn)堆排序的簡(jiǎn)單實(shí)例
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)堆排序的簡(jiǎn)單實(shí)例,講述了堆排序的原理,需要的朋友可以參考下2014-07-07
C語(yǔ)言完整實(shí)現(xiàn)12種排序算法(小結(jié))
本文主要介紹了C語(yǔ)言完整實(shí)現(xiàn)12種排序算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
利用C語(yǔ)言實(shí)現(xiàn)2048小游戲的方法
2048是比較流行的一款數(shù)字游戲,相信對(duì)大家來(lái)說(shuō)都不陌生,這篇文章給大家分享了利用C語(yǔ)言實(shí)現(xiàn)2048小游戲的方法,對(duì)大家學(xué)習(xí)理解C語(yǔ)言具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2016-10-10
C/C++ 凸多邊形求對(duì)角線交點(diǎn)的示例代碼
這篇文章主要介紹了C/C++ 凸多邊形求對(duì)角線交點(diǎn)的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
C++實(shí)現(xiàn)打印兩個(gè)有序鏈表公共部分的方法
這篇文章主要介紹了C++實(shí)現(xiàn)打印兩個(gè)有序鏈表公共部分的方法,涉及C++針對(duì)有序鏈表的簡(jiǎn)單遍歷、比較相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
C語(yǔ)言構(gòu)建動(dòng)態(tài)數(shù)組完整實(shí)例
這篇文章主要介紹了C語(yǔ)言構(gòu)建動(dòng)態(tài)數(shù)組完整實(shí)例,幫助讀者加深對(duì)C語(yǔ)言數(shù)組及指針的理解,需要的朋友可以參考下2014-07-07
VC基于ADO技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了VC基于ADO技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)的方法,較為詳細(xì)的分析了VC使用ADO操作數(shù)據(jù)庫(kù)的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10

