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

自己做网站 什么软件设计导航精选最好的设计网站大全

自己做网站 什么软件,设计导航精选最好的设计网站大全,无锡seo网站管理,跳转国外ip的软件C之STL的algorithm#xff08;6#xff09;之排序算法#xff08;sort、merge#xff09;整理 注#xff1a;整理一些突然学到的C知识#xff0c;随时mark一下 例如#xff1a;忘记的关键字用法#xff0c;新关键字#xff0c;新数据结构 C 的排序算法整理 C之STL的al…C之STL的algorithm6之排序算法sort、merge整理 注整理一些突然学到的C知识随时mark一下 例如忘记的关键字用法新关键字新数据结构 C 的排序算法整理 C之STL的algorithm6之排序算法sort、merge整理一、排序算法1、sort算法2、random_shuffle 随机洗牌算法3、reverse 反转算法4、 merge 合并算法 总结 提示本文为 C 中sort、reverse、merge 的写法和举例 一、排序算法 1、sort算法 std::sort 是对一个容器的给定范围内进行排序的算法。 语法 templateclass RandomIt void sort(RandomIt first, RandomIt last);参数 first, last要排序的序列的迭代器范围。 返回 无返回值直接修改输入的序列。 对vector 排序示例 #include iostream #include vector #include algorithm int main() { std::vectorint v {5, 2, 4, 1, 3}; std::sort(v.begin(), v.end()); for (int i : v) { std::cout i ; } // 输出: 1 2 3 4 5 return 0; }对于map/set 由于 std::map 和 std::set 内部的元素已经是排序的所以通常不需要调用 std::sort。但如果你想要基于某个不同的标准来排序它们的元素你需要复制元素到一个新的容器中比如 std::vector然后使用 std::sort。 2、random_shuffle 随机洗牌算法 std::random_shuffle 用于打乱给定序列中元素的顺序。 语法 templateclass RandomIt void random_shuffle(RandomIt first, RandomIt last);参数 first, last要打乱顺序的序列的迭代器范围。 返回 无返回值直接修改输入的序列。 vector 示例 #include iostream #include vector #include algorithm #include ctime int main() { std::vectorint v {1, 2, 3, 4, 5}; std::srand(std::time(0)); // 设置随机种子 std::random_shuffle(v.begin(), v.end()); for (int i : v) { std::cout i ; } // 输出: 随机排列的1到5 return 0; }注意std::random_shuffle 在 C17 中被弃用推荐使用 random 库中的函数来生成随机数从而进行洗牌。 3、reverse 反转算法 std::reverse 用于反转给定序列中元素的顺序。 语法 templateclass BidirectionalIt void reverse(BidirectionalIt first, BidirectionalIt last);参数 first, last要反转的序列的双向迭代器范围。 返回 无返回值直接修改输入的序列。 vector 示例 #include iostream #include vector #include algorithm int main() { std::vectorint v {1, 2, 3, 4, 5}; std::reverse(v.begin(), v.end()); for (int i : v) { std::cout i ; } // 输出: 5 4 3 2 1 return 0; }对map/set 示例 std::map 和 std::set 是基于红黑树的关联容器因此它们的元素始终是按键排序的。你不能直接反转 map 或 set 的元素顺序因为它们不允许随机访问迭代器。但是可以复制它们的元素到一个可以反转的容器比如 std::vector然后反转那个容器。 这里是一个反转 map 中元素顺序的示例 #include iostream #include map #include vector #include algorithm int main() { std::mapint, std::string m {{1, one}, {2, two}, {3, three}}; std::vectorstd::pairint, std::string v(m.begin(), m.end()); std::reverse(v.begin(), v.end()); for (const auto pair : v) { std::cout pair.second : pair.first \n; } // 输出: three: 3 // two: 2 // one: 1 return 0; }在这个例子中我们首先创建了一个 std::map然后将它的元素复制到一个 std::vector 中。之后我们使用 std::reverse 来反转 vector 中的元素顺序并打印出反转后的结果。 4、 merge 合并算法 std::merge 是用于合并两个已排序的容器到第三个范围目标容器的算法。 templateclass InputIt1, class InputIt2, class OutputIt OutputIt merge(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, OutputIt d_first);参数 first1, last1第一个输入序列的迭代器范围。 first2, last2第二个输入序列的迭代器范围。 d_first目标序列的起始迭代器。 返回 返回指向目标序列中最后一个元素的下一个位置的迭代器。 vector 示例 #include iostream #include vector #include algorithm int main() { std::vectorint v1 {1, 3, 5}; std::vectorint v2 {2, 4, 6}; std::vectorint v3(v1.size() v2.size()); std::merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin()); for (int i : v3) { std::cout i ; } // 输出: 1 2 3 4 5 6 return 0; }注意std::merge 也不适用于 std::map 和 std::set因为它们已经是排序好的容器并且它们的元素不能直接合并到另一个 map 或 set 中。 总结 std::sort 用于对序列进行排序。 std::random_shuffle已弃用用于打乱序列中元素的顺序。 std::reverse 则用于反转序列中元素的顺序。 std::merge 适用于合并两个已排序的序列。 对于 map 和 set 这样的关联容器由于它们的元素是按键排序的通常不直接在这些容器上进行排序或反转操作而是将它们的元素复制到可以能够执行这些操作的vector容器中。
http://www.zqtcl.cn/news/353865/

相关文章:

  • 不会代码 怎么做网站网站视频管理系统
  • 网站空间 流量网上卡片制作
  • 网站排名seo软件机关网站源码
  • 网站手机端页面怎么做手机之家
  • 成都电子商务网站大庆城市投资建设网站
  • 电子商务网站费用wordpress 怎么手动更新
  • 中国空间站设计在轨飞行多少年南昌网站建设风格
  • 用php写的网站有哪些暖暖 视频 在线 观看 高清
  • 云空间网站怎么做海南旅游网网页制作
  • 常宁网站免费的ai作图软件
  • 网站建设讲师招聘如何做电商产品推广
  • 让百度收录网站网站开发流程进度表
  • 有几个网站能在百度做推广产品开发管理系统
  • 一个网站项目的价格表dz论坛seo
  • 企业做网站要多少钱哪个网站做动图
  • 知名企业网站例子4s店网站模板
  • 网站建设的信息安全防范技术初级买题做哪个网站好
  • 品牌营销网站建设东莞智通人才招聘网
  • 莒县建设局网站好的网站具备什么条件
  • 威海网站建设怎么样网上怎么推销自己的产品
  • 网站做SEO优化网站建设背景图片大小的修改
  • 看企业网站怎么做到百度秒收WordPress怎么可以上传图片
  • 欧洲手表网站简述jsp网站架构
  • 网站搜索排名优化软件flash xml网站
  • 匀贵网站建设亿级别网站开发注意
  • 怎样架设网站网站优化公司推荐
  • iis网站防盗链济宁官方网站
  • 网址查询地址查询站长之家在海南注册公司需要什么条件
  • 网站开发兼职平台网站建设需要多少钱小江网页设计
  • 最专业的网站建设收费2021没封的网站有人分享吗