当前位置: 首页 > news >正文

网站建设常见问题做网站保存什么格式最好

网站建设常见问题,做网站保存什么格式最好,帮忙做任务网站,抖音代运营服务合同模板stl中的比较最大最小操作 一、概述二、最小值1. min2. min_element 三、最大值1. max2. max_element 四、混合1. minmax2. minmax_element 一、概述 记录这里C11中常用的最小值和最大值的比较函数#xff0c;最好的参考资料其实就是 https://zh.cppreference.com 最重要的查… stl中的比较最大最小操作 一、概述二、最小值1. min2. min_element 三、最大值1. max2. max_element 四、混合1. minmax2. minmax_element 一、概述 记录这里C11中常用的最小值和最大值的比较函数最好的参考资料其实就是 https://zh.cppreference.com 最重要的查看文档其实就看他的如何实现这个就是使用的最常用的功能。因为STL用的很多基本上全是函数模板库都是支持自定义函数函数器作为一个对比选项。 不带 _element 的函数一般用在两个值之间比较如果很多值还是用带_element 这个是去遍历容器比较 就像min、max最后比较两个值而且返回的是值min_element、max_element比较容器返回的是迭代器 二、最小值 1. min 1. 可能的实现 // 版本 1 templateclass T const T min(const T a, const T b) {return (b a) ? b : a; }// 版本 2 templateclass T, class Compare const T min(const T a, const T b, Compare comp) {return (comp(b, a)) ? b : a; }// 版本 3 templateclass T T min(std::initializer_listT ilist) {return *std::min_element(ilist.begin(), ilist.end()); }// 版本 4 templateclass T, class Compare T min(std::initializer_listT ilist, Compare comp) {return *std::min_element(ilist.begin(), ilist.end(), comp); }从上面的实现其实就能看出来这个是支持用函数器做自己的特定对比也是可以通过重载 符号去实现对比功能. 而且输入值和输出的模板类型是一样的 还有一些用的是 min_element 函数为实现对了min_element的一个适配器。 例子 下面给一个对比最小值的例子 #include algorithm #include iostream #include string_viewint main() {int res_1 std::min(1, 9999); // res_1 1char res_2 std::min(a, b); // res_2 astring res_3 std::min({foo, bar, hello}, [](const std::string s1, const std::string s2){return s1.size() s2.size();}) ; // res_3 foo }2. min_element 看看这个的相关实现 // 版本一 templateclass ForwardIt ForwardIt min_element(ForwardIt first, ForwardIt last) {if (first last)return last;ForwardIt smallest first;first;for (; first ! last; first)if (*first *smallest)smallest first;return smallest; }// 版本二 templateclass ForwardIt, class Compare ForwardIt min_element(ForwardIt first, ForwardIt last, Compare comp) {if (first last)return last;ForwardIt smallest first;first;for (; first ! last; first)if (comp(*first, *smallest))smallest first;return smallest; }从函数的实现来看外部的函数器的差距就在 一个是用得 ‘’ 另外一个用的 comp(*first, *smallest)对比因为‘’取决于语言定义或者我们程序员的重载实现的。 后面的其他函数maxminmax都是用的这样的。 这个参数的传入的其实就是迭代器返回的也是迭代器也需要去解引取值之类的。 就像下面这种代码 std::vectorPointF points{PointF{-1.43, 5.654}, PointF{2.453, 8.654} , PointF{10.453, -2.654}, PointF{14.453, -8.87}};auto x_minmax std::minmax_element(points.begin(), points.end(), [](const PointF p1, const PointF p2){return p1.x() p2.x(); }) ;三、最大值 1. max max和min是一样的定义方式其实就是把那个大于小于改了一下 2. max_element 这个的实现也比较简单 // 版本一 templateclass ForwardIt ForwardIt max_element(ForwardIt first, ForwardIt last) {if (first last)return last;ForwardIt largest first;first;for (; first ! last; first)if (*largest *first)largest first;return largest; }// 版本二 templateclass ForwardIt, class Compare ForwardIt max_element(ForwardIt first, ForwardIt last, Compare comp) {if (first last)return last;ForwardIt largest first;first;for (; first ! last; first)if (comp(*largest, *first))largest first;return largest; }四、混合 1. minmax 实现的源码大差不差的如下是不是比较巧妙和灵活注意这个是返回的是值而不是迭代器 //版本一 templateclass T constexpr std::pairconst T, const T minmax( const T a, const T b ) {return (b a) ? std::pairconst T, const T(b, a): std::pairconst T, const T(a, b); }//版本二 templateclass T, class Compare constexpr std::pairconst T, const T minmax( const T a, const T b, Compare comp ) {return comp(b, a) ? std::pairconst T, const T(b, a): std::pairconst T, const T(a, b); }//版本三 template class T constexpr std::pairT, T minmax( std::initializer_listT ilist ) {auto p std::minmax_element(ilist.begin(), ilist.end());return std::pair(*p.first, *p.second); }// 版本四 template class T, class Compare constexpr std::pairT, T minmax( std::initializer_listT ilist, Compare comp ) {auto p std::minmax_element(ilist.begin(), ilist.end(), comp);return std::pair(*p.first, *p.second); }上面的first是小值second是大值所以看一下源码就记住了 看看例子 std::pairint, int bounds std::minmax(3, -1);2. minmax_element 和之前的min_element类似返回的是一个std::pair迭代器迭代器类型要取值要自己去解引数据 //版本一 templateclass ForwardIt std::pairForwardIt, ForwardIt minmax_element(ForwardIt first, ForwardIt last) {using value_type typename std::iterator_traitsForwardIt::value_type;return std::minmax_element(first, last, std::lessvalue_type()); }//版本二 templateclass ForwardIt, class Compare std::pairForwardIt, ForwardIt minmax_element(ForwardIt first, ForwardIt last, Compare comp) {auto min first, max first;if (first last || first last)return {min, max};if (comp(*first, *min)) {min first;} else {max first;}while (first ! last) {auto i first;if (first last) {if (comp(*i, *min)) min i;else if (!(comp(*i, *max))) max i;break;} else {if (comp(*first, *i)) {if (comp(*first, *min)) min first;if (!(comp(*i, *max))) max i;} else {if (comp(*i, *min)) min i;if (!(comp(*first, *max))) max first;}}}return {min, max}; }例子如下 std::vectorint v {3, 1, 4, 1, 5, 9, 2, 6}; auto bounds std::minmax_element(v.begin(), v.end());int min *bounds.first; // 1 int max *bounds.second; // 9
http://www.w-s-a.com/news/136584/

相关文章:

  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站
  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程
  • ui设计网站设计与网页制作视频教程wordpress插件漏洞利用
  • 网站建设公司排名前十做网站的最终目的
  • 选择网站开发公司的标准中国网站建设市场规模
  • 衣服网站建设策划书广州住房和城乡建设部网站
  • 微商城科技淄博网站建设优化seo
  • 杭州 网站设计制作东圃手机网站开发
  • 网站文章页内链结构不好可以改吗微信平台如何开发
  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏
  • 网站制作的重要流程图大连网站优化快速排名