c++ STL 最大值最小值

本文详细介绍了如何使用C++中的双端队列(deque)进行元素的插入、遍历,并利用STL算法如min_element和max_element找到队列中的最小值和最大值。同时,通过自定义比较函数absLess,实现了基于元素绝对值大小的最小值和最大值查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <algorithm>
#include <deque>

using namespace std;

//二元谓词
//比较两个数的大小
bool absLess(int elementParam1,int elementParam2)
{
  return abs(elementParam1) < abs(elementParam2);
}

int main()
{
  deque<int> deque1;
  for (int k=0;k<10;k++)
  {
    deque1.insert(deque1.end(),k);
  }

  for (int k = -4; k<6; k++)
  {
    deque1.insert(deque1.end(), k);
  }

  deque<int>::iterator deque_iter;
  for (deque_iter = deque1.begin();deque_iter != deque1.end();++deque_iter)
  {
    cout << *deque_iter << " ";
  }
  cout << endl;

  //
  deque<int>::iterator min_index = min_element(deque1.begin(), deque1.end());
  cout << *min_index << endl;

  int min_value = *min_element(deque1.begin(), deque1.end());
  cout << min_value << endl;

  deque<int>::iterator max_index = max_element(deque1.begin(),deque1.end());
  cout << "max:" << *max_index << endl;

  bool b1 = absLess(*min_index,*max_index);
  cout << b1 << endl;

  //绝对最小值
  deque<int>::iterator min_index2 = min_element(deque1.begin(),deque1.end(),absLess);
  cout << "绝对最小值:" << abs(*min_index2) << endl;

  //绝对最大值
  deque<int>::iterator max_index2 = max_element(deque1.begin(),deque1.end(), absLess);
  cout << "绝对最大值:" << abs(*max_index2) << endl;

  system("pause");
  return 0;
}

 

============================

0 1 2 3 4 5 6 7 8 9 -4 -3 -2 -1 0 1 2 3 4 5
-4
-4
max:9
1
绝对最小值:0
绝对最大值:9
请按任意键继续. . .

 

转载于:https://www.cnblogs.com/herd/p/11000119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值