vector容器常用方法

  • 容器简介

    • 定义及初始化
    • 末尾插入元素
    • 遍历 size 函数是可以动态增加的
    • 通过下标操作增加改变vector内容不是安全的操作
    • 仅能对已存在元素进行下标操作不存在会crash
    • 将元素一个容器复制给另外一个容器类型必须匹配容器类型和元素类型必须相同
  • 迭代器简介
    • 定义
    • begin和end操作
    • 迭代器的自增和解引用操作
    • 迭代器的算术操作
    • const_iterator 只读

容器简介

定义及初始化

vector<int> vec(5,100);
vector<string> strVec(10,"hello");

末尾插入元素

  vec.push_back(102);
  strVec.push_back("what");

遍历 size() 函数是可以动态增加的

    for(vector<int>::size_type ix=0;ix<vec.size(); ix++)
    {
        cout<<vec[ix]<<endl;
        vec.push_back(ix+10);
        cout<<"size is"<<vec.size()<<endl;
        if(vec.size()==10)
        {
          break;
        }
    }
    for(vector<string>::size_type jx=0;jx<strVec.size();jx++)
    {
         cout<<strVec[jx]<<endl;
    }

通过下标操作增加改变vector内容,不是安全的操作

vector <int> vec2(10);
    cout<<vec2[9]<<endl;
    cout<<vec2[10]<<endl;

仅能对已存在元素进行下标操作,不存在会crash

vector<int> emptyVec;
//cout<<emptyVec[0]<<endl;    error

将元素一个容器复制给另外一个容器,类型必须匹配,容器类型和元素类型必须相同

    vector<int> vecCopy(vec);
    for(vector<int>::size_type i=0;i<vecCopy.size();i++)
    {
      cout<<vecCopy[i]<<endl;
    }

迭代器简介

所有标准库容器都支持迭代器,但只有少数的容器支持下标操作

定义

    vector<int>::iterator iter;

begin和end操作

begin返回迭代器指向的第一个位置,end指向vector的末端元素的下一个

vector<string>::iterator iBegin=strVec.begin();vector<string>::iterator iEnd=strVec.end();

迭代器的自增和解引用操作

++iter指向第二个元素

*iter指向当前元素

    cout<<*iBegin<<endl;
    cout<<*(iEnd-1)<<endl;
     for(;iBegin<iEnd;iBegin++)
    {
      cout<<*iBegin<<endl;
    }

迭代器的算术操作

iter+n iter-n

iter1-iter2

    string str("richard");
    *(iBegin+3)=str;
    cout<<*(iBegin+3)<<endl;
        cout<<iEnd-iBegin<<endl;
        vector<string>::iterator
         mid=iBegin+strVec.size()/2;
    cout<<*mid<<endl;

const_iterator 只读

时间: 2024-08-03 19:21:57

vector容器常用方法的相关文章

Vector容器 和 iteration 迭代器

vector容器 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的. 使用vector之前,必须包含相应的头文件.#include <vector> using std::vector; vector是一个类模板(class template).模板允许程序员编写单个类或函数定义,这个类和函数定义可用于不同的数据类型上.

vector容器用法详解

vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化. vector类常用的函数如下所示: 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t& t):创建一个vector,元

谈谈vector容器的三种遍历方法

说明:本文仅供学习交流,转载请标明出处,欢迎转载! vector容器是最简单的顺序容器,其使用方法类似于数组,实际上vector的底层实现就是采用动态数组.在编写程序的过程中,常常会变量容器中的元素,那么如何遍历这些元素呢?本文给出三种遍历方法. 方法一:采用下标遍历 由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operator [] (size_type n);所以我们可以采用类似于数组的方式来访问vector容

C++ STL vector容器学习

STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector,list, deque, set, map等),算法完成特定任务,迭代器用来遍历容器对象,扮演容器和算法之间的胶合剂. 模板类vector 在计算中,矢量(vector)对应数组,它的数据安排以及操作方式,与array非常类似.在C++中,使用vector模板类时,需要头文件包含#include<v

STL学习二:Vector容器

1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添加或移除元素非常快速.但是在中部或头部插入元素或移除元素比较费时. 2.vector对象的默认构造 vector采用模板类实现,vector对象的默认构造形式 vector<T> vecT; vector<int> vecInt;          //一个存放int的vector容器

ACM学习历程—BestCoder 2015百度之星资格赛1002 列变位法解密(vector容器)

Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下 将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置任何字符,完成后按列读取即成密文. 比如: 原文:123456789 密钥:4 变换后的矩阵: 1234 5678 9xxx (最后的几个x表示无任何字符,不是空格,不是制表符,就没有任何字符,下同) 密文:159263748 再比如: 原文:Hello, welcome to my dream w

UVA 1412 - Fund Management(用vector容器模拟状态的状压dp)

Frank is a portfolio manager of a closed-end fund for Advanced Commercial Markets (ACM ). Fund collects money (cash) from individual investors for a certain period of time and invests cash into various securities in accordance with fund's investment

把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据类型等. 程序开头应如下声明 #include <iostream> #include <vector> #include <string> using std::strin

vector容器做形参

/*容器做参数*/ void func(vector <int> &vecTest){ for(int i=0;i<10;i++) vecTest.push_back(i); } vector容器做形参,布布扣,bubuko.com