【tips】C++求vector中的最大最小值

利用algorithm库里的max_element和min_element可以得到vector的最大最小值,配合distance函数可以得到最大值的位置

#include<vector>
#include<algorithm>

using namespace std;

int main(){
    vector<int> myVec = {1,4,2,5,2,7,9,3,9};

    vector<int>::iterator myMax = max_element(myVec.begin(), myVec.end());
    cout << *myMax << " " << distance(myVec.begin(), myMax) << endl;

    vector<int>::iterator myMin = min_element(myVec.begin(), myVec.end());
    cout << *myMin << " " << distance(myVec.begin(), myMin) << endl;

    return 0;
}

输出结果:

9  6

1  0

当vector中有多个最小最大值时,位置取的是第一个

时间: 2024-10-12 20:56:27

【tips】C++求vector中的最大最小值的相关文章

求数组中最大值,最小值

Array.prototype.max = function(){   //最大值 return Math.max.apply({},this)} Array.prototype.min = function(){   //最小值 return Math.min.apply({},this)} var myMax = [1,2,3].max()// => 3var myMin = [1,2,3].min()// => 1 console.log(myMin,myMax); var _getMi

写一个方法求数组中的最大值,最小值,总和以及平均值。

class Program { /// <summary> /// 求数组中的最大值,最小值,总和以及平均值. /// </summary> /// <param name="nums">输入一个数组</param> /// <returns>返回一个新的数组(max,min,sum,avg)</returns> public static int[] GetMaxMinSumAvg(int[] nums) { i

用C随机产生的正整数存到数组中,并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。

用 C 求一组随机数的第二大值,不能通过对整体排序求得 1 随机产生20个[10 , 50]的正整数存到数组中,并求数组中的所有元素最大值.最小值.平均值以及各元素之和,及第二大值.        int a[20];    int sum = 0; //存储数组元素的和    //为数组赋值    printf("数组中的元素为:\n ");    for (int i = 0; i < 20; i ++) {        a[i] = arc4random() % 41 +

求数组中的最小值以及最小值的序列号

var Arr = [5,6,1,2,3];// var minValue = Math.min.apply(null,Arr);//apply方法可直接求出数组中的最小值var minIndex = $.inArray(minValue,Arr);//inArray求最小数在数组中的序列号 固定方法 alert(minIndex);//输出2 即数字1在数组中的位置 求数组中的最小值以及最小值的序列号

【C++】判断元素是否在vector中,对vector去重,两个vector求交集、并集

#include <iostream> #include <vector> #include <algorithm> //sort函数.交并补函数 #include <iterator> //求交并补使用到的迭代器 using namespace std; //打印容器vector void print_vector(vector<int> v){ if(v.size()>0){ cout<<"{"; for

编程之美5:求数组中最长递增子序列

最近楼楼被男朋友带着玩dota,有点上瘾,终于在昨天晚上作出了一个重大的决定,shift+delete删掉warIII文件夹,从此退出dota的明争暗斗.不过最近看男票已经将战场从11转到了topcoder,嗯,这是个好现象,希望楼楼也能跟着玩儿起来. 理想是美好的,唉,可是楼主还在编程之美的初级阶段啊.话不多说了,希望自己加油加油再加油!!(^o^)/~ 今天要看的一道题目是求数组中最长递增子序列. 题目简介: 写一个时间复杂度尽可能低的程序,求一个一维数组(N)个元素中的最长递增子序列的长度

vector中元素的输入和终止

在Essential C++一书课后题1-6的答案中,有了新的发现. 题目概述为: 编写一个程序,从标准输入设备读取一段整数,并将读入的整数依次放到array及vector中,然后遍历这两种容器,求取数值总和.将总和及平均值输出至标准输出设备. 答案代码: //用vector 解决问题#include<iostream>#include<vector>           //用vector方式的头文件using namespace std; int main(){ vector&

算法题:求数组中最小的k个数

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 题目:输入n个整数,找出其中最小的k个数. <剑指offer>给出了两种实现算法: 算法1:采用Partition+递归法,该算法可以说是快速排序和二分查找的有机结合.算法的时间复杂度为O(n),缺点在于在修改Partition的过程中会修改原数组的值. 算法2:采用top-k算法.如果要找最小的K个数,我们才用一个含有K个值的大顶堆:如果要找最大的K个数,我们采用小顶堆.该算法的时间复杂度为O(nlogK),是一种比较好的算法,启发于堆排序

数位dp(求1-n中数字1出现的个数)

题意:求1-n的n个数字中1出现的个数. 解法:数位dp,dp[pre][now][equa] 记录着第pre位为now,equa表示前边是否有降数字(即后边可不可以随意取,true为没降,true为已降):常规的记忆化搜索 代码: /****************************************************** * author:xiefubao *******************************************************/ #p