• C++ STL-vector


    1.vector基础

    vector是同一类型对象的集合   每一个对象都对应了一个整数的索引值  和string一样  

    我们在使用vector之前   都要包含相应的头文件 

    #include <vector>
    using std::vector;

    vector的定义

    vector<T>ivec;//T为保存对象的类型   可以是其他的各种类型   结构体也行     ivec是创建的容器名称

    2.vector的定义与初始化

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

    3.vectot的增长

    vector对象的重要属性在于   vector可以在运行时高速的添加元素   

    因为vector增长的效率高  所以在元素值已知的条件下   最好是动态的添加元素

    vector在动态添加元素的过程中   如果发现分配的空间不够   会成倍的扩增空间

    所以在已知元素的最大个数的情况下  我们可以设置vector的大小

    vector<T>v(n);    将容器的大小定为n   以防止其浪费过多的存储空间

    4.vector对象的操作

        v.empty();    //判断容器v是否为空
        v.size();     //返回容器v的大小
        v.push_back(t); //往容器v中添加元素t
        v[i]    //返回容器v中索引值为i的元素
        v1==v2  //判断容器v1,v2是否相等
        v1=v2   //将容器v2复制给予v1

    5.vector的下标操作

    一般情况之下  我们可能会使用int型的变量来表示vector的下标   来遍历vector

    for(int i=0;i<v.size();++i)

    但是我并不推荐你们使用int型去遍历     可以的话  应该养成使用vector<T>::size_type类型的变量去遍历

    for(vector<T>::size_type ix=0;ix!=v.size();++ix)

    6.迭代器简介

    除了使用下标来访问vector对象的元素外    标准库还提供了一种访问元素的方法   使用迭代器   迭代器是一种检查容器中元素并遍历元素的数据类型

    标准库为每一种标志容器提供了一个迭代器类型

    下面简单的讲解一下vector迭代器的使用   其他的迭代器使用方法基本差不多

    迭代器的定义:

     vector<T>::iterator iter;

    这条语句定义了一个名为iter的迭代器      其数据类型是vector<T>定义的iterator类型

    这里附加讲一下  vector容器的begin与end操作

        v.begin();
        v.end();
        for(iter=v.begin();iter!=v.end();++iter)

    begin与end用于返回迭代器    begin返回的是容器的开始位置    end返回的接受位置

    所以我们可以使用上面这种循环去遍历vector容器

    同时我们可以使用迭代器直接修改日期中的值

    *iter=k;
    *iter->num=k;

    如果容器保存的是数字字符类型的元素   直接像上面第一行一样修改值    是结构体的话  就参照第二行

    稍微提一下   存在const的迭代器   这种迭代器只有读的权力   不能改写容器中的值

    vector<T>::const_iterator iter;

    1.vector基础

    vector是同一类型对象的集合   每一个对象都对应了一个整数的索引值  string一样  

    我们在使用vector之前   都要包含相应的头文件 

    #include <vector>

    using std::vector;

    vector的定义

    vector<T>ivec;//T为保存对象的类型   可以是其他的各种类型   结构体也行     ivec是创建的容器名称

    2.vector的定义与初始化

        vector<T>v1;      //创建一个空的容器

        vector<T>v2(n,i);  //创建一个vector容器  其中包括n个值为i的元素

        vector<T>v3(v2);   //创建一个v3   v2的副本

        vector<T>v4(n);   //创建一个有初始化的元素的n个副本

    3.vectot的增长

    vector对象的重要属性在于   vector可以在运行时高速的添加元素   

    因为vector增长的效率高  所以在元素值已知的条件下   最好是动态的添加元素

    vector在动态添加元素的过程中   如果发现分配的空间不够   会成倍的扩增空间

    所以在已知元素的最大个数的情况下  我们可以设置vector的大小

    vector<T>v(n);    将容器的大小定为n   以防止其浪费过多的存储空间

    4.vector对象的操作

        v.empty();    //判断容器v是否为空

        v.size();     //返回容器v的大小

        v.push_back(t); //往容器v中添加元素t

        v[i]    //返回容器v中索引值为i的元素

        v1==v2  //判断容器v1,v2是否相等

        v1=v2   //将容器v2复制给予v1

    5.vector的下标操作

    一般情况之下  我们可能会使用int型的变量来表示vector的下标   来遍历vector

    for(int i=0;i<v.size();++i)

    {                        }

    但是我并不推荐你们使用int型去遍历     可以的话  应该养成使用vector<T>::size_type类型的变量去遍历

    for(vector<T>::size_type ix=0;ix!=v.size();++ix)

    {                        }

    6.迭代器简介

    除了使用下标来访问vector对象的元素外    标准库还提供了一种访问元素的方法   使用迭代器   迭代器是一种检查容器中元素并遍历元素的数据类型

    标准库为每一种标志容器提供了一个迭代器类型

     

  • 相关阅读:
    洛谷 P1886 滑动窗口(单调队列)
    POJ 2559 Largest Rectangle in a Histogram(单调栈)
    eclipse开发velocity实例(初学)
    Spring MVC 教程,快速入门,深入分析
    传智博客(JavaWeb方面的所有知识)听课记录(经典)
    JSP/SERVLET入门教程--Servlet 使用入门
    javaweb入门实例---servlet例子
    Eclipse快捷键大全(转载)
    简单java web应用程序搭建与部署
    Servlet 工作原理解析
  • 原文地址:https://www.cnblogs.com/52why/p/7563202.html
Copyright © 2020-2023  润新知