美文网首页C++学习笔记
9.1 顺序容器的定义--C++ Primer ReadNote

9.1 顺序容器的定义--C++ Primer ReadNote

作者: jdzhangxin | 来源:发表于2016-06-10 12:35 被阅读44次

9.1 顺序容器的定义

顺序容器Sequential Container主要有三种:vectorlistdeque
主要区别在于访问元素的方式和增删操作的代价。

Container 特点
vector 支持快速随机访问
list 支持快速插入删除
deque 双端队列
9.1.1容器元素的初始化

顺序容器初始化主要有5种:

语法 容器构造法 适用范围 说明
C <T> c 默认构造函数 所有容器 C是容器类型名,T是元素类型,
C c(c1) 复制构造函数 所有容器 c1和c必须相同容器类型和元素类型
C c(it_b,it_e) 部分复制 所有容器 it_b与it_e是迭代器
C c(n,t) 指定初始化元素数目和默认值 顺序容器 n是个数,t是元素默认值
C c(n) 指定初始化元素数目 顺序容器 n是个数,默认值是0或者空
  • 默认初始化
    最常用、最简单、最佳运行时性能:C<T> c

  • 其他初始化
    完全复制:C c(c1)
    部分复制:C c(it_b,it_e)
    指定初始化元素数目:C c(n)
    指定初始化元素数目和默认值:C c(n,t)

9.1.2 容器内元素类型的约束

基本元素类型约束:可复制可赋值
不能作为容器元素类型举例如下:

No. 类型 原因
1 引用类型 不可赋值
2 auto_ptr 不可复制
3 IO库类型 不可复制赋值
  1. 容器操作的特殊要求
    支持复制和赋值是容器元素类型的最低要求,一些容器操作需要特殊要求。例如:
操作 Operation 约束
空容器初始化 C<T> c 最低约束
指定元素个数和参数的容器初始化 C c(n,t) 带参数t相同类型形参的构造函数
指定元素个数的容器初始化 C c(n) 默认构造函数

例如:Foo是一个没有默认构造函数,但是有一个int型形参的构造函数。

vector<Foo> empty; // ok,不需要默认构造函数
vector<Foo> bad(10);// error,需要默认构造函数
vector<Foo> ok(10,1);// ok,需要`int`型形参的构造函数

2.容器的容器
容器本身可以作为容器的元素类型。例如:vector<vector<int> >
注意,最后两个>之间需要有一个空格。C++11已经没有这个要求了


收获

本节主要讲解Sequential Container的三个容器(vector,list,deque)和五种通用初始化方式;容器对元素类型是有最低约束的(可复制可赋值),其他一些操作也会对元素有特殊约束要求。

相关文章

  • 9.1 顺序容器的定义--C++ Primer ReadNote

    9.1 顺序容器的定义 顺序容器Sequential Container主要有三种:vector、list和deq...

  • 第九章 摘录

    第9章 顺序容器 第9章是第3章的扩展。 9.1 顺序容器概述 forward_list和array是新c++标准...

  • 9.7 容器适配器--C++ Primer ReadNote

    9.7 容器适配器 顺序容器适配器主要分三类: 思考:有没有关系容器适配器? 思考:queue默认基础容器是deq...

  • Boolan C++ 第六周 容器

    《C++ primer》中所提的评价容器性能的主要两个方面: 向容器添加或删除元素的代价 非顺序访问容器中元素的代...

  • C++标准库学习(一):顺序容器

    参考书籍:C++ primer 第四版 顺序容器:它将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元...

  • C++boolan part3_week1

    C++容器的介绍及使用 C++中的容器大致可以分为两个大类:顺序容器和关联容器。顺序容器中有包含有顺序容器适配器。...

  • [C++ Primer Note8] 顺序容器

    所谓的顺序容器即元素在顺序容器中的顺序与其加入容器时的位置相对应。标准库还定义了几种关联容器,关联容器中元素的位置...

  • C++模板库笔记

    C++标准模板库笔记(C++ Primer plus) 1.除序列外,vector还是可反转容器(reversib...

  • C++primer_容器

    九.顺序容器 顺序容器的顺序表示元素插入的顺序 C++标准库容器提供了顺序访问元素的能力,但是不同的容器在以下的操...

  • C++函数初识

    Tags:C++,《C++ Primer Plus》笔记 一、原型、定义与调用## 一个完整的函数包含原型、定义和...

网友评论

    本文标题:9.1 顺序容器的定义--C++ Primer ReadNote

    本文链接:https://www.haomeiwen.com/subject/lhfsdttx.html