C++ STL库应用汇总

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库应用集合的资料请关注我们其它相关文章!

(0)

相关推荐

  • C++(STL库)之顺序容器vector的使用

    一.特点 ①总的来说:可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 ②元素保存在连续的内存空间中,因此通过下标取值非常快 ③在容器中间位置添加或删除元素非常耗时 ④一旦内从重分配,和原vector相关的指针,引用,迭代器都失效.内存重分配耗时很长 二.头文件.using声明 头文件:#include <vector> using声明:using std::vector; 三.初始化 vector<T>  v1; ==>v1是一个空的vector ve

  • C++ STL库应用汇总

    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<i

  • 关于python time库整理汇总

    目录 1.Time库的作用 2. Time库的使用 时间获取函数 时间格式化:将时间以合理的方式展示出来 以以字符串的形式构造一个时间 程序计时应用:测量起止动作所经历时间的过程 3.实例:文本进度条 实例1:每次进度换行: 实例2:每次进度不换行,只是不断地进行刷新:用后打印的字符覆盖之前的字符 拓展:文本进度条的不同设计函数: 1.Time库的作用 time库是Python中处理时间的标准库 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析 2. Time库的使用

  • c++中STL库队列详细介绍

    1.queue单向队列(先进先出,只能从尾端加元素,从头删元素)         使用方式:在前面加上文件名'#include<queue>',再进行声明'queue<int>m;''其中'<>'里面是数组的类型,'m'是数组的名字.         操作: 1.q.push()//入队 2.q.pop()//让队首出队 3.q.front()//获得队首元素 4.q.back()//获得队尾元素         5.q.empty() 队列是否为空 6.q.size(

  • python机器学习库常用汇总

    汇总整理一套Python网页爬虫,文本处理,科学计算,机器学习和数据挖掘的兵器谱. 1. Python网页爬虫工具集 一个真实的项目,一定是从获取数据开始的.无论文本处理,机器学习和数据挖掘,都需要数据,除了通过一些渠道购买或者下载的专业数据外,常常需要大家自己动手爬数据,这个时候,爬虫就显得格外重要了,幸好,Python提供了一批很不错的网页爬虫工具框架,既能爬取数据,也能获取和清洗数据,也就从这里开始了: 1.1 Scrapy 鼎鼎大名的Scrapy,相信不少同学都有耳闻,课程图谱中的很多课

  • 超详细的Python安装第三方库常用方法汇总

    目录 前言 安装方法 1. 通过pychram安装 2. pip安装大法 3. 下载whl文件到本地离线安装 3.1 补充 4.其他方法 4.1 Python官方的Pypi菜单 4.2 国内镜像源解决pip安装过慢的问题 小结 总结 前言 在pyhton的学习中,相信大家通常都会碰到第三方库的安装问题,这个问题对于很多初学者而言头疼不已.这里我做一些简单的总结,如何正确高效地安装第三方库,少走弯路(毕竟都是我亲自踩过的坑,所以特地来总结一下,方便以后回顾和总结)! 安装方法 1. 通过pychr

  • Python 机器学习库 NumPy入门教程

    NumPy是一个Python语言的软件包,它非常适合于科学计算.在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础库. 本文是对它的一个入门教程. 介绍 NumPy是一个用于科技计算的基础软件包,它是Python语言实现的.它包含了: 强大的N维数组结构 精密复杂的函数 可集成到C/C++和Fortran代码的工具 线性代数,傅里叶变换以及随机数能力 除了科学计算的用途以外,NumPy也可被用作高效的通用数据的多维容器.由于它适用于任意类型的数据,这使得NumPy可以无缝和

  • 详解python算法常用技巧与内置库

    近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想去找点python的刷题常用库api和刷题技巧来看看.类似于C++的STL库文档一样,但是很可惜并没有找到,于是决定结合自己的刷题经验和上网搜索做一份文档出来,供自己和大家观看查阅. 1.输入输出: 1.1 第一行给定两个值n,m,用空格分割,第一个n决定接下来有n行的输入,m决定每一行有多少个数字,m个数字均用空格分隔. 解决办法

  • C++ STL中的容器适配器实现

    1 stack 1.1 stack 介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作.back:获取尾部元素操作.pus

  • C++:函数对象,STL提供的函数对象,函数适配器详解

    目录 1 函数对象 2 STL提供的函数对象 3 函数适配器 总结 1 函数对象 1.函数对象是行为类似函数的对象.一个类对象,表现出一个函数的特征,即通过对象名+(参数列表)的方式使用一个类对象. 2.使用STL中提供的或自定义的迭代器和**函数对象,**配合STL的算法,组合出各种各样的功能. 3.通过函数对象而不使用函数指针,可以增加通用性,提高效率. 4.函数对象概念:泛化的函数 ①将普通函数作为函数对象:传递函数名 #include <iostream> #include <n

随机推荐