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 的构造函数的更多相关文章

  1. STL容器与拷贝构造函数

    所有容器提供的都是“value语意”而非“reference语意”.容器内进行元素的安插操作时,内部实施的是拷贝操作,置于容器内.因此STL容器 的每一个元素都必须能够拷贝.---<<C+ ...

  2. 【转】c++中Vector等STL容器的自定义排序

    如果要自己定义STL容器的元素类最好满足STL容器对元素的要求    必须要求:     1.Copy构造函数     2.赋值=操作符     3.能够销毁对象的析构函数    另外:     1. ...

  3. 不要在公共接口中传递STL容器

    最近的一个项目,是开发一个framework,提供给公司内部不同的产品线使用. 之间遇到的一个问题,就是STL容器的使用, 而结论是不要在公共接口中传递STL容器: 这里说的STL容器,但主要则是指容 ...

  4. STL容器的内存分配

    这篇文章参考的是侯捷的<STL源码剖析>,所以主要介绍的是SGI STL实现版本,这个版本也是g++自带的版本,另外有J.Plauger实现版本对应的是cl自带的版本,他们都是基于HP实现 ...

  5. 转:STL容器里存放对象还是指针

    一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题.就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式   对于内建类 ...

  6. STL - 容器共性机制研究

    C++模板是容器的概念. 理论提高:所有容器提供的都是值(value)语意,而非引用(reference)语意.容器执行插入元素的操作时,内部实施拷贝动作.所以STL容器内存储的元素必须能够被拷贝(必 ...

  7. STL 容器的概念

    STL 容器的概念 在实际的开发过程中,数据结构本身的重要性不会逊于操作于数据结构的算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要. 经典的数据结构数量有限,但是我们 ...

  8. STL容器共性机制和使用场景

    一.STL容器共性机制 STL容器所提供的都是值(value)寓意,而非引用(reference)寓意,也就是说当我们给容器中插入元素的时候,容器内部实施了拷贝动作,将我们要插入的元素再另行拷贝一份放 ...

  9. 刷题常用的STL容器总结

    本文归纳总结刷题常用到STL容器以及一些标准算法,主要包括: string.vector.map.pair.unordered_map.set.queue.priority_queue.stack,以 ...

  10. 从零开始写STL—容器—vector

    从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...

随机推荐

  1. rbd的数据在哪里

    创建一个rbd [root@mytest ~]# rbd create test1 --size 4000 查看rbd信息 [root@mytest ~]# rbd info test1 rbd im ...

  2. Oracle 集合类型

    集合类型 1. 使用条件: a. 单行单列的数据,使用标量变量 .    b. 单行多列数据,使用记录 [ 详细讲解请见: 点击打开链接 ]   c. 单列多行数据,使用集合 *集合:类似于编程语言中 ...

  3. Python_俄罗斯方块

    网上资料,仅供学习,希望以后自己也能看懂再改进下... """ 俄罗斯方块 author: wolfstar last edited: 2018年1月 "&qu ...

  4. git 最新笔记,工作中的必会技能

    1.状态查看: git status 可以查看工作区,暂存区的状态 untracked 在暂存区没有该文件 modified 修改过 staged 使用git add 暂存过 2.添加操作: git ...

  5. wireshark实战应用(长期更新,工作随笔)

    Wireshark检索语法 过滤IP地址 ip.addr eq 192.168.1.1 ip.addr == 192.168.1.1 //过滤源IP地址 ip.src eq 192.168.1.1 i ...

  6. vue路由参数的获取、添加和替换

    获取路由参数 getUrlKey(name){//获取url 参数 return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&am ...

  7. JS 数组对象

    定义数组: 数组对象用来在单独的变量名中存储一系列的值. 创建一个数组有三种方法. 1: 常规方式: var myCars=new Array(); myCars[0]="Saab" ...

  8. 自学linux——1.VMware的安装及VM下centos的安装

    1.CentOS下载 网址:https://www.centos.org/download/ 网盘:https://pan.baidu.com/s/1HrtK6xNig6KC8oh6O-6fyg 提取 ...

  9. VisualStudio C++使用汇编函数

    Visual Studio编写C++代码使用汇编函数 新建空项目 新建如下源文件 ;test.asm ;测试函数 三个数相加 ;.386 .model flat, c ;public test_ .c ...

  10. 硬RAID和软RAID

    RAID简介: RAID是 Redundant Array of Independent Disks的简写,意为独立磁盘冗余阵列,简称磁盘阵列.基本思想是把多个相对便宜的硬盘结合起来,称为一个磁盘阵列 ...