C++ STL庫(kù)應(yīng)用匯總
1、std::max_element的使用
std::min_element類(lèi)似,求最小
#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ù)組、排序二叉樹(shù))和算法(如排序、查找)的模板的集合,主要由 Alex Stepanov 主持開(kāi)發(fā),于 1998 年被加入 C++ 標(biāo)準(zhǔn)。
有了 STL,程序員就不必編寫(xiě)大多數(shù)常用的數(shù)據(jù)結(jié)構(gòu)和算法。而且 STL 是經(jīng)過(guò)精心設(shè)計(jì)的,運(yùn)行效率很高,比水平一般的程序員編寫(xiě)的同類(lèi)代碼速度更快。
有一種說(shuō)法,C++ 是用來(lái)編寫(xiě)大程序的,如果只是編寫(xiě)幾十上百行的小程序,用C語(yǔ)言就可以,沒(méi)有必要用 C++。
這個(gè)說(shuō)法是不準(zhǔn)確的??梢哉f(shuō),寫(xiě)小程序沒(méi)必要用面向?qū)ο蟮姆椒?,但是?C++ 還是能夠帶來(lái)很大方便的,因?yàn)?C++ 中有 STL。哪怕編寫(xiě)只有十幾行的程序,也可能會(huì)用到 STL 中提供的數(shù)據(jù)結(jié)構(gòu)和算法。例如對(duì)數(shù)組排序,用 STL 中的 sort 算法往往只需要一條語(yǔ)句就能解決,而不用像調(diào)用C語(yǔ)言庫(kù)函數(shù) qsort 那樣還要編寫(xiě)比較函數(shù)。
以上就是C++ STL庫(kù)應(yīng)用匯總的詳細(xì)內(nèi)容,更多關(guān)于C++ STL庫(kù)應(yīng)用集合的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++ qt 使用jsoncpp json 讀寫(xiě)操作
JsonCpp是一個(gè)基于C++語(yǔ)言的開(kāi)源庫(kù),用于C++程序的Json數(shù)據(jù)的讀寫(xiě)操作,本文重點(diǎn)給大家介紹C++ qt 使用jsoncpp json 讀寫(xiě)操作,感興趣的朋友跟隨小編一起看看吧2021-11-11模擬實(shí)現(xiàn)C語(yǔ)言中的內(nèi)存管理
這篇文章主要內(nèi)容是模擬C語(yǔ)言中的內(nèi)存管理,需要的朋友可以參考下2015-07-07C語(yǔ)言static修飾函數(shù)詳細(xì)解析
以下是對(duì)C語(yǔ)言中的static修飾函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08c語(yǔ)言中回調(diào)函數(shù)的使用以及實(shí)際作用詳析
回調(diào)函數(shù)就是一個(gè)通過(guò)函數(shù)指針調(diào)用的函數(shù),如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng)這個(gè)指針被用來(lái)調(diào)用其所指向的函數(shù)時(shí),我們就說(shuō)這是回調(diào)函數(shù),這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中回調(diào)函數(shù)的使用以及實(shí)際作用的相關(guān)資料,需要的朋友可以參考下2021-07-07