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}; //方法一 调用函数 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 { return i < j; } ); std::cout << "Max element is " << *nn << " at position " << std::distance( std::begin( zx ), biggest ) << std::endl; return a.exec(); }
升级可以用到任务队列管理中,通过任务优先级,选择优先级最高的任务
auto max_pos = std::max_element( m_taskList.cbegin(), m_taskList.cend(), []( const TaskManagePtr & task1, const TaskManagePtr & task2 ) -> bool { return task1->priority() < task2->priority(); } );
知识点扩展:
C++ 的标准模板库(Standard Template Library,STL)是泛型程序设计最成功应用的实例。STL 是一些常用数据结构(如链表、可变长数组、排序二叉树)和算法(如排序、查找)的模板的集合,主要由 Alex Stepanov 主持开发,于 1998 年被加入 C++ 标准。
有了 STL,程序员就不必编写大多数常用的数据结构和算法。而且 STL 是经过精心设计的,运行效率很高,比水平一般的程序员编写的同类代码速度更快。
有一种说法,C++ 是用来编写大程序的,如果只是编写几十上百行的小程序,用C语言就可以,没有必要用 C++。
这个说法是不准确的。可以说,写小程序没必要用面向对象的方法,但是用 C++ 还是能够带来很大方便的,因为 C++ 中有 STL。哪怕编写只有十几行的程序,也可能会用到 STL 中提供的数据结构和算法。例如对数组排序,用 STL 中的 sort 算法往往只需要一条语句就能解决,而不用像调用C语言库函数 qsort 那样还要编写比较函数。
以上就是C++ STL库应用汇总的详细内容,更多关于C++ STL库应用集合的资料请关注小牛知识库其它相关文章!
本文向大家介绍C++(STL库)之顺序容器vector的使用,包括了C++(STL库)之顺序容器vector的使用的使用技巧和注意事项,需要的朋友参考一下 一、特点 ①总的来说:可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 ②元素保存在连续的内存空间中,因此通过下标取值非常快 ③在容器中间位置添加或删除元素非常耗时 ④一旦内从重分配,和原vector相关的指针,引用,迭代
希望您已经理解了我们之前讨论过的C ++模板的概念。 C ++ STL(标准模板库)是一组功能强大的C ++模板类,它通过模板提供通用类和函数,这些模板实现了许多常用的常用算法和数据结构,如向量,列表,队列和堆栈。 C ++标准模板库的核心是遵循三个结构良好的组件 - Sr.No 组件和说明 1 Containers 容器用于管理某种对象的集合。 有几种不同类型的容器,如deque,list,ve
在前面的章节中,我们已经学习了 C++ 模板的概念。C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。 C++ 标准模板库的核心包括以下三个组件: 组件 描述 容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list
当我使用g编译一个使用STL的程序时,库是如何链接到我的程序的?动态还是静态? 对我来说,静态听起来很奇怪,因为这意味着每一个使用STL的C程序都必须在内部包含它。另一方面,动态链接对我来说也很奇怪,因为对于所有OOP的东西,我不知道如何动态链接库并支持不同类型的对象。。。 那么这里到底发生了什么?
本文向大家介绍C ++ STL中的map :: at(),包括了C ++ STL中的map :: at()的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中map::at()函数的工作,语法和示例。 什么是C ++ STL中的映射? 映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在映射容器中,数据始终在内部借助其关联的键进行排序。映射容器中的值
本文向大家介绍C ++ STL中的map :: size(),包括了C ++ STL中的map :: size()的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中map::size()函数的工作原理,语法和示例。 什么是C ++ STL中的映射? 映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在映射容器中,数据始终在内部借助其关联的键进行排序