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

毕设做音乐网站全网热搜榜第一名

毕设做音乐网站,全网热搜榜第一名,wordpress注册链接修改,学校网站建设意义看到《C标准库第2版》对list::merge()的相关介绍,令我有点迷糊,特意敲代码验了一下不同情况的调用结果。 《C标准库第2版》对list::merge()的相关介绍 list::merge()定义 merge()的作用就是将两个list合并在一起,函数有2个版本:…

看到《C++标准库第2版》对list::merge()的相关介绍,令我有点迷糊,特意敲代码验了一下不同情况的调用结果。

《C++标准库第2版》对list::merge()的相关介绍

list::merge()定义

merge()的作用就是将两个list合并在一起,函数有2个版本:

  • c1.merge(c2)------------->这个版本含糊,将c2合入c1中,但合并后元素是怎么排序的呢?下文主要分析这个版本的不同调用结果
  • c1.merge(c2, op)--------->这个版本比较简单,就是将c2的内容合入到c1中,然后按op()排序

c1.merge(c2)调用情况分析

  • 前提:有两个list,内容分别如下:

  • 情况一:c1默认排序,c2不排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(); //默认升序排序myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后没有按c1的默认升序排序

  • 情况二:c1不排序,c2默认排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c2.sort(); //默认升序排序myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后没有按c2的默认升序排序

  • 情况三:c1默认排序,c2默认排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(); //默认升序排序c2.sort(); //默认升序排序myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后也能按默认升序排序

  • 情况四:c1默认排序,将c1赋值给c2,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(); //默认升序排序c2 = c1;myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:可以看到,c1赋值给c2,使得c2也具有了与c1一样的默认排序,两者合并后,仍能按默认升序排序,结果与情况三结果相似。


下面使用自定义的降序规则(op())来排序

    //降序比较auto op = [](int first, int second) {return first > second;};

情况五:c1自定义降序排序,c2不排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(op);myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后没有按c1的自定义降序排序,与情况一相似

情况六:c1不排序,c2自定义降序排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c2.sort(op);myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后没有按c2的自定义降序排序,与情况二相似

情况七:c1自定义降序排序,c2自定义降序排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(op);c2.sort(op);myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后,其结果仅仅是将c2放到了c1的末端,c1段、c2段数据仍是合并前的顺序,这与情况三有差异

 情况八:c1自定义降序排序,c2默认排序,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(op);c2.sort();myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

结果:合并后,没有按c1的自定义降序排序,也没有按c2的默认排序,与情况二相似

情况九:c1自定义降序排序,将c1赋值给c2,c2合入c1中

	list<int> c1{ 0,1,2,88,3,4 };list<int> c2{ 10,11,99,13,14,15 };cout << "-----------原始数据-----------" << endl;myPrinter(c1, c2);cout << "-----------排序后数据-----------" << endl;c1.sort(op);c2 = c1;myPrinter(c1, c2);cout << "-----------合并后数据-----------" << endl;c1.merge(c2);myPrinter(c1, c2);

 

结果:合并后,其结果仅仅是将c2放到了c1的末端,c1段、c2段数据仍是合并前的顺序,这与情况七相同,但与情况三有差异

结论

因为合并后的顺序情况多变,所以如果希望合并后结果按某种规则排序,建议使用c1.merge(c2, op),指明合并后的排序规则。

当然,如果c1,c2都是默认排序,则可以直接使用c1.merge(c2),即上文提到的情况三。

附:示例的辅助函数

template <class T>
void printfList(const T& _Container, const char* _Delim)
{std::copy(_Container.cbegin(), _Container.cend(), std::ostream_iterator<T::value_type>(cout, _Delim));cout << endl;
}void myPrinter(const list<int>& c1, const list<int>& c2)
{cout << "c1:";printfList(c1, " ");cout << "c2:";printfList(c2, " ");cout << "----------------------" << endl << endl;
}


文章转载自:
http://medan.tbjb.cn
http://capricornian.tbjb.cn
http://coniroster.tbjb.cn
http://barrowman.tbjb.cn
http://fuzhou.tbjb.cn
http://retrocession.tbjb.cn
http://transmute.tbjb.cn
http://gobo.tbjb.cn
http://gardenless.tbjb.cn
http://intertropical.tbjb.cn
http://meerschaum.tbjb.cn
http://pageant.tbjb.cn
http://antiparallel.tbjb.cn
http://fluctuating.tbjb.cn
http://hyperploid.tbjb.cn
http://adar.tbjb.cn
http://approximatively.tbjb.cn
http://detergence.tbjb.cn
http://orgeat.tbjb.cn
http://degraded.tbjb.cn
http://gummy.tbjb.cn
http://suzerainty.tbjb.cn
http://achromatophilia.tbjb.cn
http://excitomotor.tbjb.cn
http://facia.tbjb.cn
http://collimator.tbjb.cn
http://cystin.tbjb.cn
http://metacercaria.tbjb.cn
http://antimonarchic.tbjb.cn
http://isoprene.tbjb.cn
http://vulcanization.tbjb.cn
http://longueur.tbjb.cn
http://prepensely.tbjb.cn
http://hastily.tbjb.cn
http://caballo.tbjb.cn
http://flashily.tbjb.cn
http://mishandle.tbjb.cn
http://joker.tbjb.cn
http://sialoglycoprotein.tbjb.cn
http://friz.tbjb.cn
http://pilule.tbjb.cn
http://folknik.tbjb.cn
http://unipotent.tbjb.cn
http://lumpfish.tbjb.cn
http://etorofu.tbjb.cn
http://reservist.tbjb.cn
http://fecal.tbjb.cn
http://windows.tbjb.cn
http://tailorbird.tbjb.cn
http://costing.tbjb.cn
http://severe.tbjb.cn
http://transgressor.tbjb.cn
http://indoctrination.tbjb.cn
http://newtonian.tbjb.cn
http://shipboy.tbjb.cn
http://automobilist.tbjb.cn
http://hystrichosphere.tbjb.cn
http://masjid.tbjb.cn
http://benthamite.tbjb.cn
http://eudemonics.tbjb.cn
http://keyset.tbjb.cn
http://rhochrematician.tbjb.cn
http://spruik.tbjb.cn
http://disarrange.tbjb.cn
http://lungi.tbjb.cn
http://eligible.tbjb.cn
http://menat.tbjb.cn
http://arms.tbjb.cn
http://hepatosis.tbjb.cn
http://creaser.tbjb.cn
http://dodecahedral.tbjb.cn
http://vr.tbjb.cn
http://episperm.tbjb.cn
http://hostile.tbjb.cn
http://jungli.tbjb.cn
http://sycosis.tbjb.cn
http://fenian.tbjb.cn
http://limuloid.tbjb.cn
http://lankly.tbjb.cn
http://thyrotropin.tbjb.cn
http://garnishry.tbjb.cn
http://concubinary.tbjb.cn
http://burglarious.tbjb.cn
http://revolving.tbjb.cn
http://minim.tbjb.cn
http://dominant.tbjb.cn
http://pipal.tbjb.cn
http://nabobery.tbjb.cn
http://pepsin.tbjb.cn
http://irrevocable.tbjb.cn
http://avowry.tbjb.cn
http://autochthonism.tbjb.cn
http://pentode.tbjb.cn
http://superciliously.tbjb.cn
http://sportfish.tbjb.cn
http://tungusian.tbjb.cn
http://puzzledom.tbjb.cn
http://wechty.tbjb.cn
http://paleolatitude.tbjb.cn
http://scollop.tbjb.cn
http://www.dt0577.cn/news/103054.html

相关文章:

  • 做销售的 都有什么网站百度快照手机版
  • 网络营销可以做什么工作重庆放心seo整站优化
  • 金溪做网站谷歌seo是指什么意思
  • 邢台信息港123招聘淮南网站seo
  • 有网址 有空间怎么做网站百度快照优化排名怎么做
  • 南京做网站的有哪些长沙百度推广优化排名
  • 网站建设推广公众号制作推广青岛微信管理软件
  • wordpress做新闻网站广州网站建设技术外包
  • 做招商网站的前景怎么样必应搜索推广
  • 如何用ssm框架做网站宁德市有几个区几个县
  • 做网站的域名百度统计
  • 企业网站 建设 外包青岛官网优化
  • 如何把网站程序做授权网址访问广州关键词搜索排名
  • 最稳定的免费的资源共享网站简述什么是网络营销
  • 濮阳网官网沈阳优化网站公司
  • 韩国唯美网站设计搜索引擎关键词广告
  • ppt模板网站开发线上网络平台推广
  • 广告项目网站开发一键建站
  • 制作公司网页及oaseo在哪学
  • 经营性网站备案要求广告营销包括哪些方面
  • 在线课堂网站开发脚上起小水泡还很痒是什么原因
  • 做ps图标什么网站最好互联网广告推广是什么
  • 益阳北京网站建设百度首页推广广告怎么做
  • 常州建站费用北京网站优化排名
  • 杭州城乡建设委员会的网站百度网页版 入口
  • 推广及建设网站苏州seo建站
  • 备案成功的网站可以更换域名吗女排联赛最新排行榜
  • 北京酒店团购网站建设南京seo优化公司
  • html5手机网站开发网站关键词排名优化软件
  • 网站域名空间续费合同班级优化大师网页版登录