2025年4月23日 星期三 乙巳(蛇)年 正月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

求数组中的最大值和最小值(不用现成的api)

时间:09-16来源:作者:点击数:37
城东书院 www.cdsy.xyz

求数组中的最大值和最小值(不用现成的api)

使用模板声明函数类型

  • #include<iostream>
  • #include<vector>
  • using namespace std;
  • template<typename T>
  • void minmaxValue(const T v1, const T v2, T&min, T&max)
  • {
  • if (v1 <= v2)
  • {
  • min = v1;
  • max = v2;
  • }
  • else
  • {
  • min = v2;
  • max = v1;
  • }
  • }
  • template<typename T1, typename T2>
  • void myMinMax(typename T1 vt, T2& min, T2& max)
  • {
  • //初始化minmax
  • auto vtI = vt.begin();
  • minmaxValue(*vtI, *(vtI + 1), min, max);
  • //如果元素为基数,则从第二个值开始
  • if (vt.size() % 2 != 0) vtI++;
  • for (; vtI != vt.end(); vtI += 2)
  • {
  • if (*vtI <= *(vtI + 1))
  • {
  • if (*vtI<min) min = *vtI;
  • if (*(vtI + 1)>max) max = *(vtI + 1);
  • }
  • else
  • {
  • if (*(vtI + 1)<min) min = *(vtI + 1);
  • if (*vtI>max) max = *vtI;
  • }
  • }
  • }
  • void test()
  • {
  • //初始化数组
  • int a[10] =
  • { 32,12,5,99,1,5,9,12,19,23 };
  • vector<int> vtd(a, a + 10);
  • //前
  • for (int j = 0; j<10; j++)
  • {
  • cout << a[j] << " ";
  • }
  • cout << endl << endl;
  • int myMin = 0;
  • int myMax = 0;
  • //调用函数
  • myMinMax(vtd, myMin, myMax);
  • //后
  • cout << "Minimum is: " << myMin << "\nMaximum is: " << myMax << endl;
  • }
  • int main()
  • {
  • test();
  • system("pause");
  • return 0;
  • }
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐