STL——容器(List)List 的构造函数
list<T> lstT —— list 对象的默认构造
list 与 vector 一样,同样采用模板类实现,对象的默认构造形式:list<T> lstT 如:
1 #include <iostream>
2 #include <list>
3
4 using namespace std;
5
6 int main()
7 {
8 list<int> listInt; //定义一个存放 int 的 list 容器
9 cout << "listInt size:" << listInt.size() << endl;
10 list<float> listFloat; //定义一个存放 float 的 list 容器
11 cout << "listInt size:" << listFloat.size() << endl;
12 list<string> listString; //定义一个存放 string 的 list 容器
13 cout << "listInt size:" << listString.size() << endl;
14
15 return 0;
16 }
打印结果:

list(beg, end) —— list 对象的带参构造&拷贝构造
构造函数将(beg, end)区间中的元素拷贝给本身,如以下三种方法:
1 #include <iostream>
2 #include <list>
3
4 using namespace std;
5
6 int main()
7 {
8 list<int> listInt; //定义一个存放 int 的 list 容器
9 listInt.push_back(1);
10 listInt.push_back(2);
11 listInt.push_back(3);
12 int num[] = { 111,222,333 };
13
14 //方法一 将 (beg, end)区间中的元素拷贝给本身
15 list<int> listInt_A(listInt.begin(), listInt.end()); //1 2 3
16 for (list<int>::iterator it = listInt_A.begin(); it != listInt_A.end(); it++)
17 {
18 cout << *it << " ";
19 }
20 cout << endl;
21
22 //方法一(变种) 将一个数组中的元素拷贝给本身
23 list<int> listInt_B(num, num + size(num)); //111 222 333
24 for (list<int>::iterator it = listInt_B.begin(); it != listInt_B.end(); it++)
25 {
26 cout << *it << " ";
27 }
28 cout << endl;
29
30 //方法二 list(n, elem) 构造函数将 N 个 elem 拷贝给本身
31 list<int> listInt_C(3, 888); //888 888 888
32 for (list<int>::iterator it = listInt_C.begin(); it != listInt_C.end(); it++)
33 {
34 cout << *it << " ";
35 }
36 cout << endl;
37
38 //方法三 list(const list & lst) 拷贝构造函数
39 list<int> listInt_D(listInt_A); //1 2 3
40 for (list<int>::iterator it = listInt_D.begin(); it != listInt_D.end(); it++)
41 {
42 cout << *it << " ";
43 }
44
45 return 0;
46 }
打印结果:

=====================================================================================================================
STL——容器(List)List 的构造函数的更多相关文章
- STL容器与拷贝构造函数
所有容器提供的都是“value语意”而非“reference语意”.容器内进行元素的安插操作时,内部实施的是拷贝操作,置于容器内.因此STL容器 的每一个元素都必须能够拷贝.---<<C+ ...
- 【转】c++中Vector等STL容器的自定义排序
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1.Copy构造函数 2.赋值=操作符 3.能够销毁对象的析构函数 另外: 1. ...
- 不要在公共接口中传递STL容器
最近的一个项目,是开发一个framework,提供给公司内部不同的产品线使用. 之间遇到的一个问题,就是STL容器的使用, 而结论是不要在公共接口中传递STL容器: 这里说的STL容器,但主要则是指容 ...
- STL容器的内存分配
这篇文章参考的是侯捷的<STL源码剖析>,所以主要介绍的是SGI STL实现版本,这个版本也是g++自带的版本,另外有J.Plauger实现版本对应的是cl自带的版本,他们都是基于HP实现 ...
- 转:STL容器里存放对象还是指针
一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题.就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式 对于内建类 ...
- STL - 容器共性机制研究
C++模板是容器的概念. 理论提高:所有容器提供的都是值(value)语意,而非引用(reference)语意.容器执行插入元素的操作时,内部实施拷贝动作.所以STL容器内存储的元素必须能够被拷贝(必 ...
- STL 容器的概念
STL 容器的概念 在实际的开发过程中,数据结构本身的重要性不会逊于操作于数据结构的算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要. 经典的数据结构数量有限,但是我们 ...
- STL容器共性机制和使用场景
一.STL容器共性机制 STL容器所提供的都是值(value)寓意,而非引用(reference)寓意,也就是说当我们给容器中插入元素的时候,容器内部实施了拷贝动作,将我们要插入的元素再另行拷贝一份放 ...
- 刷题常用的STL容器总结
本文归纳总结刷题常用到STL容器以及一些标准算法,主要包括: string.vector.map.pair.unordered_map.set.queue.priority_queue.stack,以 ...
- 从零开始写STL—容器—vector
从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...
随机推荐
- ceph集群的安装和配置教程
本篇主题: 1.怎样配置ssh免登陆访问 2.为什么搭建集群要关闭防火墙和selinux,如何关闭 3.从哪里获取ceph的安装包,怎样安装才是快速正确的 4.为什么要配置时间同步服务,怎样配置 5. ...
- mysql多表查询之子语句查询
1.子语句查询 1.1子语句查询出来的结果集作为临时表名使用 select * from (select * from person) as aaa; -- as这个起别名关键字是可以省略的 1.2查 ...
- linux打包 压缩 解压tar常归操作
tar 打包 tar -cvf 打包后路径和文件名.tar 需要打包的路径和文件压缩 tar -zcvf 打包后路径和文件名.tar.gz 需要打包的路径和文件解压 tar -xvf 包名 -C 路径 ...
- 【进阶之路】Mybatis-Plus中乐观锁@version注解的问题与解决方案
大家好,我是练习java两年半时间的南橘,从一名连java有几种数据结构都不懂超级小白,到现在懂了一点点的进阶小白,学到了不少的东西.知识越分享越值钱,我这段时间总结(包括从别的大佬那边学习,引用)了 ...
- 微信支付回调 敏感信息解密 v3 php
今天博主用了一波微信的v3版本的支付,支付成功后发现回调跟v2的完全不一样,于是去看了了一波v3的文档,发现信息是经过加密的,需要解密才能获取的到 但是最悲催的是文档上没写怎么解密的,经过了一下午的百 ...
- 3种办法教你解决Vegas预览画面卡顿问题
做视频的小伙伴都知道,剪视频的时候最烦躁的就是卡顿,不能编辑,不能预览.最近很多同学就反映在使用Vegas的时候,预览窗口播放非常卡顿,有时候根本预览不了,这该如何解决呢? 制作视频并不是简单的拼拼凑 ...
- Java基础知识面试题(最详细版)
刚刚经历过秋招,看了大量的面经,顺便将常见的Java常考知识点总结了一下,并根据被问到的频率大致做了一个标注.一颗星表示知识点需要了解,被问到的频率不高,面试时起码能说个差不多.两颗星表示被问到的频率 ...
- 基于Kubernetes和OpenKruise的可变基础设施实践
本文首发在OPPO互联网公众号,欢迎点击转载 https://mp.weixin.qq.com/s/hRvZz_bZfchmP0tkF6M2OA 对于可变基础设施的思考 kubernetes中的可变与 ...
- 一枚程序猿的MacBook M1详细体验报告
前言 2020年11月11日双十一上午,苹果发布了M1芯片的新款Mac,其最大的变化就是将处理器从Intel换成了苹果自研的ARM芯片M1. 上一次苹果更换Mac芯片要追溯到2006年,14年前,苹果 ...
- Bootstrap Blazor 组件介绍 Table (二)自定义模板列功能介绍
Bootstrap Blazor 是一套企业级 UI 组件库,适配移动端支持各种主流浏览器,已经在多个交付项目中使用.通过本套组件可以大大缩短开发周期,节约开发成本.目前已经开发.封装了 70 多个组 ...