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

17zwd一起做网站广州新塘微网站分享功能

17zwd一起做网站广州新塘,微网站分享功能,注册公司的网站,网站的栏目和板块一,引言list作为CSTL库中非常常见的容器。熟练的掌握list各个函数接口的使用方法和使用逻辑显得十分重要,因此下文将介绍list的主要的用法,注意事项以及测试用例。二,构造函数list初始化分为默认构造,n个数据的构造,迭代器构造,拷…

一,引言

list作为C++STL库中非常常见的容器。熟练的掌握list各个函数接口的使用方法和使用逻辑显得十分重要,因此下文将介绍list的主要的用法,注意事项以及测试用例。

二,构造函数

 list初始化分为默认构造,n个数据的构造,迭代器构造,拷贝构造。赋值函数内部调用的也是拷贝构造。具体实例如下:

list<int> s;
list<int> s1(10, 2);
list<int> s2(s1.begin(), s1.end());
list<int> s3;
s3 = s1;

运行结果如下:

三,迭代器

 常用的迭代器有四种,begin指向开始位置的迭代器;end指向最后数据下一个位置的迭代器;rbegin指向最后一个元素位置的反向迭代器。rend指向最后一个元素下一个位置的反向迭代器。

具体例子如下:

list<int> s{ 1,2,3,4,5,6,7,8 };
cout << *s.begin()<<endl;
cout << *s.rbegin() << endl;

测试结果:
 end以及rend迭代器指向的没有数据。这里不进行测试。

四,capacity

 分别计算list容器是否为空,以及 list容器的数据个数。

具体例子如下:

st<int> s{ 1,2,3,4,5,6,7,8 };cout << s.empty()<<endl;cout << s.size() << endl;

empty容器不为空返回0,为空返回1。

测试结果:

五,元素数据获取

list容器的底层是双向循环链表。不支持数据的随机访问。front返回第一个数据的引用;back返回最后一个数据的引用。

测试用例如下:

list<int> s{ 1,2,3,4,5,6,7,8 };
cout << s.front()<<endl;
cout << s.back() << endl;
s.front() = 10;
s.back() = 20;
for (auto c : s)
{cout << c << ' ';
}

 测试结果如下:

返回的引用是可以修改该位置的数值的。

六,修饰符函数

1,assign

assign函数将指定容器赋值给list对象。第一种是迭代器区间;第二种是n个val数据。具体例子如下:

list<int> s{ 2,3,4,5,6,7,8 };
list<int> s1(5,1);
list<int> s2;
s1.assign(s.begin(), s.end());
s2.assign(s.begin(), s.end());
for (auto ch : s1)
{cout << ch<<' ';
}
cout << endl;for (auto ch : s2)
{cout << ch << ' ';
}
cout << endl;

原list容器的数据会被assign函数指定的数据替代。 

 测试结果如下:

2,push_front;pop_front;push_back;pop_back

头插,头删;尾插,尾删。

具体示例如下:

list<int> s;
s.push_back(10);
s.push_back(9);
s.push_back(8);
s.push_back(7);
printfs(s);
s.push_front(100);
s.push_front(200);
printfs(s);
s.pop_back();
printfs(s);
s.pop_front();
printfs(s);

测试结果如下:
 printfs函数是打印list容器数据函数。

3,erase

删除指定位置或指定区域的数据。传入迭代器位置或者区间。返回删除下一个位置的迭代器。由于list容器的物理地址并不连续。并不会造成迭代器的失效。具体用例如下:

list<int> s{ 1,2,3,4,5,6,7,8,9 };
auto it = s.begin();
it++;
it = s.erase(it);
printfs(s);
s.erase(it,s.end());
printfs(s);

测试结果如下:

 需要注意的是经过erase之后需要用迭代器变量进行接收。否则原本位置的迭代器就会失效。

4,rsize

调整容器的大小,若容器小于该函数参数,则会对容器进行缩容。若该函数参数大于list容器则会进行扩容,扩容部分填充val值。

具体例子如下:

list<int> s{ 1,2,3,4,5,6,78,0 };
s.resize(5);
printfs(s);
s.resize(10, 5);
printfs(s);

测试结果如下:

5,clear

清除list容器,使得list容器为空。

七,operation

1,splice

1,将x插入到原list的指定位置,并对x进行删除。

2,将x的指定位置的数据插入到list的指定位置,并删除x中这个数据。

3,将x的指定区间的数据插入到list的指定位置,并删除x的区间的数据。

具体例子如下:

list<int> s{ 1,2,3,4,5 };
list<int> s1{ 11,12,13,14 };
list<int> s2{ 100,111,222,444 };
s.splice(s.begin(),s2);
printfs(s);
s.splice(s.begin(), s1, s1.begin());
printfs(s);
s.splice(s.begin(), s1, s1.begin(),s1.end());
printfs(s);

测试结果如下:

2.unique

删除有效容器中多余的多个相同数据,只留下一组。

http://www.dtcms.com/a/619554.html

相关文章:

  • 高清品牌网站设计建设网站安全制度体系的建设情况
  • 网站设计鉴赏房子装修设计图片大全
  • Selenium 八大定位方法
  • 做网站业务的怎么找资源seo公司推荐推广平台
  • 【开题答辩全过程】以 基于web网络的超级商场进行销存管理系统为例,包含答辩的问题和答案
  • 深度解析KingbaseES数据库备份利器sys_dump:从参数到实战的全流程指南
  • 岳阳网站界面设计全国企业信用查询系统
  • html网站免费模板下载指数基金投资指南
  • 百度小程序seo域名如何优化
  • dnf免做卡网站哪里查询网站备案
  • 北京酷站科技有限公司北仑seo排名优化技术
  • 佛山网站建设 骏域网站建设哈尔滨网站制作建设
  • 东莞网站建设 烤活鱼seo课程简介
  • 前端模块化:ESM 与 CJS
  • 4网站建设汕头市官网
  • 可以做产品推广的网站wordpress做网站过程
  • 《Unity Shader》 6.4.2 逐像素光照
  • 北京公司网站制作衡水 网站开发
  • 东莞做网站首选企业铭缙云县城乡建设局网站
  • 41 当前用户购物车数据
  • 公司网站建设需要什么网站开发过程文档
  • wordpress调用昵称静态网站怎么做优化
  • php网站开发建设网站云优化
  • 快排做网站排名爬取漫画数据做网站
  • 黄页游戏引流推广网站昆明建设招聘信息网站
  • 网站建设投诉去哪里投诉专业做家居的网站
  • 免费祝福网页在线制作网站在线优化工具
  • 【题解】P2324 [SCOI2005] 骑士精神 [IDA*]
  • 杭州自助建站网站网站变灰代码 所有浏览器
  • 中国建设银行官网站积分抽奖网站浮窗制作