大佬教程收集整理的这篇文章主要介绍了C++ min_element、max_element和minmax_element求极值算法详解,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
std::vector<int> data {2,12,3,5,17,-11,113,117,19}; std::cout << "From values "; std::copy(std::begin(data),std::end(data),std::ostream_iterator<int>{std::cout," "}); std::cout << "\n Min = " << *std::min_element(std::begin(data),std::end (data))<< " Max = " << *std::max_element (std::begin (data),std::end(data))<< std::endl; auto start_iter = std::begin(data) + 2; auto end_iter = std::end(data) - 2; auto pr = std::minmax_element(start_iter,end_iter); // Get min and max std::cout << "From values "; std::copy(start_iter,end_iter," "}); std::cout << "\n Min = "<< *pr.first << " Max = " << *pr.second << std::endl;min_element() 和 max_element() 被用来从 data 中查找最小值和最大值。minmax_element() 会被应用到同一个序列上,但会略过前两个和后两个元素。执行这段代码会输出下面的内容:
From values 2 12 3 5 17 -11 113 117 19
Min = -11 Max = 117
From values 3 5 17 -11 113
Min = -11 Max = 113
auto words = {string {"one"},string {"two"},string {"three"},string {"four"},string {"five"},string {"six"},string {"seven"},string {"eight"}}; std::cout << "Min = " << std::min(words)<< std::endl;//Min = eight auto pr = std::minmax(words,[] (const strings s1,const strings s2){return s1.back() < s2.back();}); std::cout << "Min = " << pr.first << " Max = " << pr.second<< std::endl; // Min = one Max = sixwords 是 string 对象的一个初始化列表。元素都是 string 对象很重要。如果使用简单的 char*,那么算法将无法正常工作,因为比较的是地址而不是 string 的内容。min() 算法会用 string 对象默认的 operator<() 来确定 words 中的最小对象,然后用 minmax() 找出列表中最小和最大对象,minmax() 使用一个自定义的比较字符串的最后一个字符的比较函数。结果显示在注释中。也有接受函数对象作为定义比较的最后一个参数的 min() 和 max() 版本。
以上是大佬教程为你收集整理的C++ min_element、max_element和minmax_element求极值算法详解全部内容,希望文章能够帮你解决C++ min_element、max_element和minmax_element求极值算法详解所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。