• C++ 顺序容器(vector,list、deque,stack,queue)


    顺序容器的种类有:vector,list、deque

    顺序容器适配器:

    stack     //先进后出   栈

    queue   //先进先出   队列

    priority_queue   //也优先管理级的优先队列

    1.头文件

    #include <vector>    
    #include <list>
    #include <deque>   //每一种头文件对应一种顺序容器
    #include <queue>   //队列  优先队列的头文件
    #include <stack>   //栈的头文件

    2.定义

        vector<int>v;
        list<string> l;
        deque<struct Node>dq;
        //容器类型<容器保存的数据类型>容器名称;

    3.初始化   (以vector类型为例)

        vector<T>v1;      //创建一个空的容器
        vector<T>v2(n,i);  //创建一个vector容器  其中包括n个值为i的元素
        vector<T>v3(v2);   //创建一个v3   是v2的副本
        vector<T>v4(n);   //创建一个有初始化的元素的n个副本
        vector<T>v5(v2.begin(),v2.end()-1);  //创建v5   值为索引的中间值

    注意:在初始化时,不同类型的容器之间   不能进行值的初始化

    注意容器的定义时   有一种特殊情况    看下面的代码“

         vector< vector<int> >v3;   //ok
         vector<vector<int> >v4;   //ok
         vector<vector<int>>v5;   //error

    我们在写的时候    建议使用第一种写法   养成一个好的习惯

    其实这第三种定义之所以不行   是因为它俩个>符号写在了一起   就会合成一个>>符号

    4.迭代器的运算

    所有迭代器都支持的运算

         *iter      //返回迭代器所指向的元素的引用
         iter->name   //获取迭代器指向元素中的name   容器中保持的是结构体  相等于(*iter).name.
        iter++(--)    //iter 加减
        ++(--)iter     //和上面一样    只存在先加减和先运算的不同
        iter1==(!=)iter2   //判断俩个迭代器所指 的元素是同一个

    以下表图为string   vector   deque 类型迭代器支持的额外运算

    注意:list容器只提供   上面所有迭代器都提供的运算    不能使用加减法与大小比较   (加减不同于自增自减)

  • 相关阅读:
    CS231n 学习笔记(1) Image CLassification
    caffe-winsows封装成dll
    Nuget安装程序包源
    PCA降维demo
    AI方面的国际会议
    caffe solver
    caffe数据层
    一些有意思的技术博客
    js cookie 设置
    knockout.validation.js 异步校验
  • 原文地址:https://www.cnblogs.com/52why/p/7591386.html
Copyright © 2020-2023  润新知