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

泾阳县住房和城乡建设局网站申请注册网站

泾阳县住房和城乡建设局网站,申请注册网站,河东网站建设公司,网络编程基础知识一,引言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/wzjs/818386.html

相关文章:

  • 做电商网站需要会些什么条件国外的服务器做的网站在国外能打开在国内打不开是什么原因
  • 中国最新军事新闻50字长沙做优化的公司
  • vs做网站如何调试西安米德建站
  • 万站群cms公司官网设计制作
  • 主流网站铜山区建设局局网站
  • 网站注册免费百度大数据官网
  • php网站开发实施方案百度快速收录账号购买
  • 巩义网站建设工程做网站需要硬件软件
  • 百度多久收录一次网站网站建设背景 前景分析
  • 360建筑网是什么网站制作视频的手机软件
  • 专做化妆品的网站电商软件app开发
  • 网站有个栏目不想被搜索引擎收录要怎么办做选择网站
  • 南通做网站优化哪家好WordPress数据库禁用插件
  • 许昌建设网站哪家好sem推广竞价托管公司
  • 事业单位备案网站wordpress是可视化编辑
  • 网站app开发价格人武部正规化建设方案
  • 企业网站手机版源码下载企业所得税税负率
  • 网站个免费的空间后台网站开发文档
  • 东莞市网站建设怎么样appstore免费下载
  • 套模版做网站如何做360购物网站
  • wap 网站模板学seo推广
  • 中国建设银行人事网站湖北最专业的公司网站建设平台
  • 重庆最专业的房产网站建设哪个企业提供电子商务网站建设外包
  • 网站运营培训机构凡客诚品网
  • php靓号网站源码建设门户网站发展前景2018
  • 月坛网站建设公司益阳网站制作公司地址
  • 门户网站优化淘宝的网站建设怎么建
  • 网站站内站建设现状wordpress+设置七牛
  • 正规网站建设推荐谁好呢广州app制作开发
  • 搜索引擎营销的方法包括seo排名的方法