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客户端服务端属性匹配关系
ceph的server是定期会发布版本,而它的客户端是放到linux 内核当中的,一些属性的支持是依赖于内核版本的,这样就存在一些问题,一些功能后端支持,而客户端旧了:还有可能是客户端用的很新的内核, ...
- Angualr 内置工具-SelectionModel
SelectionModel: 被用来控制选中一个和多个item时候的逻辑.例如下拉菜单,复选框选中等,非常方便. 引入:import{SelectionModel}from'@angular/cdk ...
- Python_faker (伪装者)创建假数据
faker (伪装者)创建假数据 工作中,有时候我们需要伪造一些假数据,如何使用 Python 伪造这些看起来一点也不假的假数据呢? Python 有一个包叫 Faker,使用它可以轻易地伪造姓名.地 ...
- appium 常用方法总结
1.appium启动任意的Activity 在手机上启动任意的Activty用driver.start_activity方法,如果启动的Activity不是测试应用程序的一部分,它也将启动该活动的应用 ...
- deepin 20安装后系统没有声音解决方案(亲测有效)
打开终端: sudo vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT原有配置后面添加 snd_hda_intel.dmic_detect=0 即GRUB ...
- NAT基本原理及应用
参考链接 https://blog.csdn.net/u013597671/article/details/74275852
- java8的stream功能及常用方法
Java8中stream对集合操作做了简化,用stream操作集合能极大程度简化代码.Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后就用尽了. 一. ...
- 使用Folx智能速控功能,确保带宽资源的合理分配
市面上的大部分下载软件,都会配备速度控制的功能,用于限制下载任务的带宽占用.但除此之外,Folx专业版还提供了更加智能化的速度控制功能,用户可以为速控指定更加详细的条件,比如程序限制条件.时间限制条件 ...
- python测试代码
前言: 编写函数或者类时,需要编写测试代码,来保证其的功能运行是否按预期的那样工作.在程序添加新的代码时,用来测试是否会破坏本身的功能. 我们使用python自带的unittest模块来测试代码. 编 ...
- jmeter接口测试多数据组合登陆场景
一.安装好Java运行环境 百度下载JDK并且配置JAVA环境的教程一搜一大把,这里我就不详说了 二.运行JMETER 打开安装目录的bin文件中的jmeter.bat文件 三.添加程序 1.添加线程 ...