C++ STL库应用汇总
1、std::max_element的使用std::min_element类似求最小1234567891011121314151617181920212223242526#include iostream#include iterator#include QApplicationboolmyfn(inti,intj ){returni j;}intmain(intargc,char* argv[] ){QApplication a( argc, argv );std::listint zx {1, 2, 3, 8, 5, 44};//方法一 调用函数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;//方法二 调用Lamda表达式auto nn std::max_element( std::begin( zx ), std::end( zx ), [](int i,int j ) -bool{returni j;} );std::cout Max element is *nn at position std::distance( std::begin( zx ), biggest ) std::endl;returna.exec();}升级可以用到任务队列管理中通过任务优先级选择优先级最高的任务123456auto max_pos std::max_element( m_taskList.cbegin(), m_taskList.cend(),[](constTaskManagePtr task1,constTaskManagePtr task2 ) -bool{returntask1-priority() task2-priority();} );知识点扩展C 的标准模板库Standard Template LibrarySTL是泛型程序设计最成功应用的实例。STL 是一些常用数据结构如链表、可变长数组、排序二叉树和算法如排序、查找的模板的集合主要由 Alex Stepanov 主持开发于 1998 年被加入 C 标准。有了 STL程序员就不必编写大多数常用的数据结构和算法。而且 STL 是经过精心设计的运行效率很高比水平一般的程序员编写的同类代码速度更快。有一种说法C 是用来编写大程序的如果只是编写几十上百行的小程序用C语言就可以没有必要用 C。这个说法是不准确的。可以说写小程序没必要用面向对象的方法但是用 C 还是能够带来很大方便的因为 C 中有 STL。哪怕编写只有十几行的程序也可能会用到 STL 中提供的数据结构和算法。例如对数组排序用 STL 中的 sort 算法往往只需要一条语句就能解决而不用像调用C语言库函数 qsort 那样还要编写比较函数。