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

list基础用法

list基础用法

  • 1.list的访问就不能用下标+[]了,用迭代器
  • 2.emplace_back()几乎是与push_back()用法一致,但也有差别
  • 3.insert(),erase()的用法
  • 4.reverse()
  • 5.排序
  • 6.合并
  • 7.unique()(去重)
  • 8.splice剪切再粘贴

1.list的访问就不能用下标+[]了,用迭代器

void test1()
{list<int>lt;//list要带头文件,同理,vector,string也是lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);//list的访问就不能用下标+[]了//用迭代器list<int>::iterator it = lt.begin();while (it != lt.end()){cout << *it;it++;}cout << endl;for (auto e : lt){cout << e;} cout << endl;}

2.emplace_back()几乎是与push_back()用法一致,但也有差别


void test2()
{list<A>lt;A a1(1, 2);lt.push_back(a1);//又名lt.push_back(A(1, 1));//匿名lt.emplace_back(a1);lt.emplace_back(A(1, 1));//差别://push_back()只能传一个参数,emplace_back()支持直接传构造A的对象参数lt.emplace_back(3, 4);}

3.insert(),erase()的用法

void test_list3()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_back(6);//insert()auto it = lt.begin();int k = 3;while (k--){++it;}lt.insert(it, 30);for (auto e : lt){cout << e << " ";}cout << endl;//erase()int x = 0;cin >> x;it = find(lt.begin(), lt.end(), x);if (it != lt.end()){lt.erase(it);}for (auto e : lt){cout << e << " ";}cout << endl;
}

4.reverse()

     lt.reverse();//orreverse(lt.begin(), lt.end());

5.排序

    // 升序lt.sort();//orless<int> ls;lt.sort(ls);//降序greater<int> gt;lt.sort(ls);//orlt.sort(greater<int>());

关于链表排序:链表排序效率非常的低。

6.合并

std::list<double> first, second;first.push_back(3.1);first.push_back(2.2);first.push_back(2.9);second.push_back(3.7);second.push_back(7.1);second.push_back(1.4);first.sort();second.sort();first.merge(second);//second就为空了

7.unique()(去重)

前提:必须保证有序

void test5()
{list<int> lt;lt.push_back(1);lt.push_back(20);lt.push_back(3);lt.push_back(5);lt.push_back(5);lt.push_back(4);lt.push_back(5);lt.push_back(6);lt.sort();for (auto e : lt){cout << e << " ";}cout << endl;lt.unique();for (auto e : lt){cout << e << " ";}cout << endl;
}

8.splice剪切再粘贴

void test6()
{// 一个链表节点转移给另一个链表std::list<int> mylist1, mylist2;std::list<int>::iterator it;// set some initial values:for (int i = 1; i <= 4; ++i)mylist1.push_back(i);      // mylist1: 1 2 3 4for (int i = 1; i <= 3; ++i)mylist2.push_back(i * 10);   // mylist2: 10 20 30it = mylist1.begin();++it;                         // points to 2mylist1.splice(it, mylist2); // mylist1: 1 10 20 30 2 3 4// mylist2 (empty)// "it" still points to 2 (the 5th element
}

文章转载自:

http://MWXN07MT.cLnmf.cn
http://DFesQzsO.cLnmf.cn
http://5u003Nkw.cLnmf.cn
http://qtoyBjrW.cLnmf.cn
http://UBK3d5Pz.cLnmf.cn
http://DdPhlHZV.cLnmf.cn
http://Ykju8a0v.cLnmf.cn
http://q7ZqAe7N.cLnmf.cn
http://FqZHPrjn.cLnmf.cn
http://zWDur624.cLnmf.cn
http://r4OUdhk9.cLnmf.cn
http://dsKWaWqI.cLnmf.cn
http://cFF41ApR.cLnmf.cn
http://7lq0qpiU.cLnmf.cn
http://rQEVEepc.cLnmf.cn
http://BB58tNGx.cLnmf.cn
http://nWNnSIYd.cLnmf.cn
http://1F6BucPe.cLnmf.cn
http://ofsohlI3.cLnmf.cn
http://cM4YuMUL.cLnmf.cn
http://OcIjdp6P.cLnmf.cn
http://id0lAklb.cLnmf.cn
http://wCR7KJ1x.cLnmf.cn
http://omc0ODAn.cLnmf.cn
http://c0gXcGqZ.cLnmf.cn
http://uJIgptTt.cLnmf.cn
http://imP7fY5i.cLnmf.cn
http://DPL89jJs.cLnmf.cn
http://YNwhoqnW.cLnmf.cn
http://JKZfsrJ9.cLnmf.cn
http://www.dtcms.com/a/188068.html

相关文章:

  • Docker疑难杂症解决指南
  • ThingsBoard3.9.1 MQTT Topic(4)
  • python常用算法总结(下)
  • 基于STM32、HAL库的TLV320AIC3101IRHBR音频接口芯片驱动程序设计
  • [250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
  • webservice获取全国省份区县编码(拼音全拼+拼音简写)
  • linux 抓包工具tcpdump使用小记(使用时注意权限和系统资源)
  • OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——mqtt库
  • 时间序列预测建模的完整流程以及数据分析【学习记录】
  • 从零开始了解数据采集(二十七)——什么IIOT平台
  • 源码分析之Leaflet中GeoJSON模块
  • 信息学奥赛一本通 1535:【例 1】数列操作
  • 信奥赛-刷题笔记-队列篇-T2-P1540机器翻译和P2952Cow Line S
  • 品种亮相!贵州金桥药业筑牢市场竞争护城河
  • MATLAB语音情感识别神经网络方法
  • 从零开始:使用 Vue-ECharts 实现数据可视化图表功能
  • INT202 Complexity of Algroithms 算法的复杂度 Pt.7 NP-Completeness NP完全性
  • SwarmUI 基于.NET开发的开源AI图像生成WEB用户界面系统
  • 市政务服务技能竞赛流程策划方案
  • 【计算机视觉】OpenCV实战项目:基于Tesseract与OpenCV的字符识别系统深度解析
  • 第十七章:Llama Factory 深度剖析:易用性背后的微调框架设计
  • flutter Stream 有哪两种订阅模式。
  • 工作常用的git命令
  • Node.js中的洋葱模型
  • C++中的volatile有什么用?
  • PostgreSQL 恢复信息函数
  • flea-cache使用之Redis哨兵模式接入
  • ETL 数据集成平台与数据仓库的关系及 ETL 工具推荐
  • EDR与XDR如何选择适合您的网络安全解决方案
  • 爬虫请求频率应控制在多少合适?