vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型。想了解顺序容器的更多内容:C++顺序容器知识总结。vector的对象是可以动态生长的,这说明它在初始化时可以不用指定大小,而是再使用时根据元素所需的空间动态增长。C++中还有一种常见的类型string,它和vector有很多相似之处,具体可以看《C++标准库string类型的使用和操作总结》这篇博文。下面简单介绍一下vector容器的使用和操作。

一.声明和初始化

  使用vector之前必须在程序前的库包含中包含相应的头文件,如下:

#include<vector>
using std::vector;

  vector定义了几种构造函数,所以它提供了几种初始化的方式,如下:

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

二.常用操作

  vector的很多操作都类似于string对象的操作,下面仅仅列出一些常用的操作。

v.empty();                如果v为空,则返回true,否则返回false
v.size();                 返回v中元素的个数
v.push_back(t);           在v的末尾添加一个值为t的元素
v[n];                     返回v中位置为n的元素,从0开始计数
v1=v2;                    把v的内容替换为v2的一个副本
v1==v2;                   比较v1和v2的内容,相等则返回true,否则返回false
!=,<,<=,>和>=           保持这些操作符惯有的含义

  值得注意的是在进行下标操作时,必须是已经存在的元素才能进行下标索引,否则通过下标索引赋值,不会添加任何元素,如:

vertor<int >    ivec;
for(vector<int >::size_type i=0;i!=10;++i)ivec[i]=i;
//上面则条语句不会像容器添加任何元素,因为ivec是空的对象,所以应该改成下面的语句
vertor<int >    ivec;
for(vector<int >::size_type i=0;i!=10;++i)ivec.push_back(i);

参考文献

C++ PRIMER》 中文版

转载于:https://www.cnblogs.com/maluning/p/8570052.html

C++标准库vector类型的使用和操作总结相关推荐

  1. [python教程入门学习]Python标准库映射类型与可散列数据类型的关系

    本文章向大家介绍Python标准库映射类型与可散列数据类型的关系,主要包括Python标准库映射类型与可散列数据类型的关系使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  2. Python 标准库之 shutil 高阶文件操作『详细』

    Python标准库之 shutil 高阶文件操作『详细』 文章目录 Python标准库之 shutil 高阶文件操作『详细』 一.Python shutil介绍

  3. C++标准库vector及迭代器

    vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...

  4. C++ 标准库 vector list map使用方法

    [cpp] view plaincopy List(链表) List将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. list对象函数 as ...

  5. Rust 标准库字符串类型String及其46种常用方法

    Rust字符串 Rust主要有两种类型的字符串:&str和String &str 由&[u8]表示,UTF-8编码的字符串的引用,字符串字面值,也称作字符串切片.&st ...

  6. C++标准库 vector排序

    项目中需要对坐标点排序,转自https://blog.csdn.net/hnu_zxc/article/details/6746029/.侵删. 前天要做一个对C++ STL的vector容器做一个排 ...

  7. 初识标准库vector

    vector:相同类型对象的集合(不能包含引用,引用不是对象),有索引,是一个类模板,通常称容器. 初始化:与string有些类似,但也有些不同 #include<iostream> #i ...

  8. STL标准库vector笔记

    vector::assign()用法: 1 #include "stdafx.h" 2 #include <iostream> 3 #include <vecto ...

  9. Go语言自学系列 | golang标准库os模块 - File文件读操作

    视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

最新文章

  1. 数据结构之【队列】的基本操作C语言实现
  2. oracle rac 磁盘重建,Oracle RAC环境下重建ASM磁盘组 Re-create ASM diskgroup with Oracle RAC...
  3. C#获取数据库表信息,列信息
  4. libevent 1.4.13 / 源代码文件组织
  5. Android第十期 - 百度地图
  6. ORA-12638: 身份证明检索失败
  7. python中调用C++写的动态库
  8. 百度AI技术盛宴来了!大咖齐聚解读CV/NLP/跨模态大模型技术!
  9. 动态规划 —— 区间 DP —— 石子合并三讲
  10. elastic 索引库_使用Elastic Job Agents自动执行Azure SQL数据库索引维护
  11. 【Oracle】RedHat 6.5 安装 11g数据库
  12. 匈牙利算法求最大匹配(HDU-4185 Oil Skimming)
  13. 学习笔记-Speed-Win
  14. 公交线路查询接口使用说明
  15. wordpress企业主题安装
  16. Compose系列 五 副作用 side-effect
  17. 绝版 ~ 原来 Python 画画可以这么简单
  18. matlab验证确认和测试,验证和确认快速入门
  19. Mac系统升级后,按大小写键没反应了,切换大小写的灯不亮了
  20. WhiteBalance

热门文章

  1. Windows 技术篇-利用telnet方法ping端口通不通实例演示,如何测试服务器端口是否启用,windows启用telnet功能
  2. css知识点笔记-常见特性
  3. css hack合集
  4. 基于vue2实现省市联动
  5. CTFshow 文件包含 web78
  6. Reverse Linked List II
  7. 损失函数-经验风险最小化-结构风险最小化
  8. 整数划分问题(递归法)
  9. matlab画图(复数的直角坐标和极坐标)(-)
  10. mysql日期时间函数(常用的)