• C++顺序容器vector、deque、list


    1、容器元素类型

        C++中大多数数据类型能够作为容器的元素类型。容器元素类型必须满足一下两个条件:支持赋值和复制操作。

        所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的元素类型。

    2、vector容器的自增长

        vector容器中存储的元素在内存中是连续存储的。假如容器中没有空间容纳新元素。此时因为元素必须连续存储以便索引訪问,所以不能在内存中随便找个地方存储这个新的元素,于是vector必须又一次分配空间。用于存放原来的元素和新加入的元素:存放在旧容器中的元素被拷贝到新的容器中,接着插入新的元素,最后撤销旧的存储空间。为了使vector容器实现高速的内存分配,事实上际分配的容量要比当前所需的空间多一些,vector容器预留这些空间,用于存放新的元素。

        list容器中加入元素时。仅仅须要创建一个新的元素。然后将该元素连接到已经存在的链表中。不须要又一次分配存储空间,也不用复制不论什么已存在的元素。

    3、vector、deque、list三种容器的特点

        vector:支持高速随机訪问、可高效的在vector容器尾部加入删除数据

        deque:支持高速随机訪问、可高效的在deque容器头部和尾部加入删除数据

        list:支持顺序訪问,可是在不论什么位置插入删除元素都非常快

    4、vector容器基本操作

    1. #include "stdafx.h"  
    2. #include <string>  
    3. #include <iostream>  
    4. #include <vector>  
    5. using namespace std;  
    6.   
    7. int main(int argc, char* argv[])  
    8. {     
    9.     //vector定义并初始化  
    10.     vector<int> v1;  
    11.     for (int i=0;i<10;i++)  
    12.         v1.push_back(i+1);  
    13.   
    14.     //使用迭代器遍历vector  
    15.     vector<int>::iterator iter=v1.begin();  
    16.     for (;iter!=v1.end();iter++)  
    17.     {  
    18.         cout<<*iter<<" ";  
    19.     }  
    20.     cout<<endl;  
    21.     return 0;  
    22. }  
  • 相关阅读:
    SublimeText3下的Python开发环境配置
    从Evernote迁移到Wiz
    读书笔记---《即学即用财务常识120例》
    MC700 安装双系统
    Python3.5 + django1.8.5 安装”import pymysql pymysql.install_as_MySQLdb()”的解决方法
    7z压缩文件时排除指定的文件
    安装.NET Framework后程序无法启动的错误处理
    重拾Blog
    X240s安装Win7 以及如何启用ExpressCache
    新玩具---Amazon Kindle PaperWhite 2
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6740951.html
Copyright © 2020-2023  润新知