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中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...
随机推荐
- linux服务器远程网络开机(wake on lan)
通过网络可以远程开关机,某些时候比较方便管理机器 检查服务器是否支持远程网络开机 [root@lab5101 ~]# ethtool eth0 Settings for eth0: Supported ...
- DB2 建表,添加字段,删除字段,修改字段等常用操作
转载:http://blog.sina.com.cn/s/blog_67aaf4440100v01p.html,稍作修改. --创建数据库 create database Etp; --连接数据库 c ...
- Python_微信开发
<!-- 发消息功能 --> 0.微信开发的2个库 pip install werobot pip install 1.新建项目 2.项目下新建 robot 的app 3.写robot.p ...
- 查看mongodb状态
netstat -ntlp|grep 27017
- 怎么让我们的mac运行得更加流畅?让我们得工作事半功倍!
古语云:"工欲善其事,必先利其器."因此,一个运行流畅的Mac更能使我们的工作事半功倍.但又是什么导致电脑的运行不流畅呢? 其实这大多还是缓存垃圾过多.内存不足的原因.尝试安装了许 ...
- Android source code compile error: “Try increasing heap size with java option '-Xmx<size>'”
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./pr ...
- 编程语言输出“ Hello World ”,你真的都会了吗?
Hello World 中文意思是『你好,世界』.因为<The C Programming Language>中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试 ...
- CentOS下搭建VNC/TEAMVIEW/SSH无密码登录
VNC 配置桌面 # 安装gnome桌面环境 yum groupinstall Desktop -y # 安装中文语言支持包(可选) yum groupinstall 'Chinese Support ...
- 【佛山市选2013】JZOJ2020年8月7日提高组T3 海明距离
[佛山市选2013]JZOJ2020年8月7日提高组T3 海明距离 题目 描述 对于二进制串a,b,他们之间的海明距离是指两个串异或之后串中1的个数.异或的规则为: 0 XOR 0 = 0 1 XOR ...
- 微信支付万亿日志在Hermes中的实践
导语 | 微信支付日志系统利用 Hermes 来实现日志的全文检索功能,自从接入以来,日志量持续增长.目前单日入库日志量已经突破万亿级,单集群日入库规模也已经突破了万亿,存储规模达 PB 级.本文将介 ...