vector是同一种对象的集合,每一个对象都有一个相应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的类存。

引入头文件

#include<vector>

1.vector对象的定义和初始化

vector<T> v1             vector保存类型为T的对象。默认构造函数。v1为空
vector<T> v2(v1) v2是v1的一个副本
vector<T> v3(n,i) v3包括n个值为i的元素
vector<T> v4(n) v4含有值初始化的元素的n个副本

假设没有指定元素的初始化式。那么标准库将自行提供一个元素初始值进行值初始化。

这个由库生成的初始值将用来初始化容器中的每一个元素,详细的值为何。取决于存储在vector中元素的数据类型。

假设vector保存内置类型如int。那么标准库将用0值创建元素初始化式

vector<int> vv(10);      //10个元素,每一个被初始化为0

假设vector保存的是含有构造函数的类类型的元素,标准库将用该类型的默认的构造函数创建元素的初始化式

vector<string> vvvv(10)      //10个元素,每一个被初始化为空字符串

还有第三种情况,元素类型可能是未定义构造函数的类类型。这样的情况下。标准库仍产生一个带初始值的对象,这个对象的每一个成员进行了值初始化。

除此之外。若

vector<int> vv{10};      //初始化第一个元素为10。其余依照默认值(0)初始化

2.vector对象的操作

几种重要的操作

v.empty()               假设v为空,则返回true。否则返回false
v.size() 返回v中元素的个数
v.push_back() 在v的末尾添加一个值为t的元素
v[n] 返回v中位置为n的元素
v1=v2 把v1中的元素替换为v2中元素的副本
v1==v2 假设v1与v2相等,则返回true
!=,<,<=,>,>= 保持这些操作符惯有含义

size()返回对应vector类定义的size_type的值。

vector::size_type             //error

vector<int>::size_type    //ok

push_back()函数将新元素加入到vector最后面。

STL之Vector(不定长数组)的更多相关文章

  1. (STL初步)不定长数组:vector

    STL是指C++的标准模板库.(存储着一些常用的算法和容器) vector是一个不定长数组.它把一些常用的操作”封装“在vector类型内部. 例如,a是一个vector.1对元素的操作有,可以用a. ...

  2. 【STL初步】不定长数组:vector + 集合:set + 映射:map

    一.vector 为了节省空间,有时我们会使用动态数组vector. 定义动态数组 vector<类型名>变量名 vector<int>que //定义que为一个int类型的 ...

  3. 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结

    #include<iostream> #include<cstdio> #include<string> #include<vector>//不定长数组 ...

  4. STL之vector(不定长数组)

    vector就是一个不定长数组,另外它把一些常用操作“封装”在了vector类型内部.例如,若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_ba ...

  5. C++如何返回不定长数组

    起初遇到这个问题的时候便得知无法返回,那么为了达到相同的目的,该怎么办呢? 第一个想法便是 int * void() { int * want = new int[size]; //......do ...

  6. C语言格式化输入不定长数组

    先随便写写,有空再整理. 直接贴代码 #include <stdio.h> #include <stdlib.h> //从一行标准输入中格式化输入一个不定长数组 void in ...

  7. 【OI】C++STL 不定长数组 vector

    Vector 本来是向量的意思,只不过在用法上类似于一个不限长度的数组. 定义语法:vector<数据类型> 名称; 一.头文件:<vector> (bits/stdc++请忽 ...

  8. 不定长数组 Vector的 应用

    #include<cstdio> #include<vector> using namespace std; vector<int>a; int main() { ...

  9. UVa101 The Blocks Problem(不定长数组vector)

    The Blocks Problem 书上的一道例题,代码思路比较清晰,可以看懂. 相关知识: 若a是一个vector,则: a.size():读取它的大小 a.resize():改变大小 a.pus ...

随机推荐

  1. c# 调用外部exe程序

    c#调用外部exe程序,首先要 using System.Diagnostics; 然后开启一个新process System.Diagnostics.ProcessStartInfo p=null; ...

  2. 【linux】内核源代码下载与阅读

      原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://blog. ...

  3. [置顶] 无名管道的C++封装

    xpipe-无名管道的C++封装类 无名管道的C++封装类,用于父子进程进行通信 基础介绍 unix下一切皆文件,管道也不例外.无名管道pipe定义在<unistd.h>中. #inclu ...

  4. POJ 3481 &amp; HDU 1908 Double Queue (map运用)

    题目链接: PKU:http://poj.org/problem?id=3481 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=1908 Descript ...

  5. 使用perf生成Flame Graph(火焰图)

      具体的步骤参见这里: <flame graph:图形化perf call stack数据的小工具>   使用SystemTap脚本制作火焰图,内存较少时,分配存储采样的数组可能失败,需 ...

  6. NetBeans + Xdebug 调试WordPress

    用NetBeans进行WordPress的相关开发和定制很顺手,配合Xdebug后调试起来也很方便. 详细配置过程如下(本例中Xampp安装目录为D:\xampp): 1: 下载xdebug(版本需匹 ...

  7. Find the minimum线段树成段更新

    问题 G: Find the minimum 时间限制: 2 Sec   内存限制: 128 MB 提交: 83   解决: 20 [ 提交][ 状态][ 讨论版] 题目描述 Given an int ...

  8. C++ 载入dll

    1.新建一个项目生成dll 首先我们新建一个项目生成一个Dynamic Library(动态链接库) dll 里面非常简单,只有一个add方法.等下我们就要在其他项目里尝试载入这个dll,调用里面的这 ...

  9. 排序(6)---------归并排序(C语言实现)

    归并排序: 归并操作,也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作.归并排序算法依赖归并操作. 归并操作的步骤例如以下:     (1) 申请空间,使其大小为两个已经排序序列之和.该空 ...

  10. protobuf-2.5.0.tar.gz的下载与安装

    1.下载 hadoop使用protocol buffer进行通信,须要下载和安装protobuf-2.5.0.tar.gz.因为如今protobuf-2.5.0.tar.gz已经无法在官网https: ...