C++标准库vector类型的使用和操作总结
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=;i!=;++i)
- ivec[i]=i;
- //上面则条语句不会像容器添加任何元素,因为ivec是空的对象,所以应该改成下面的语句
- vertor<int > ivec;
- for(vector<int >::size_type i=;i!=;++i)
- ivec.push_back(i);
参考文献
《C++ PRIMER》 中文版
C++标准库vector类型的使用和操作总结的更多相关文章
- C++标准库string类型的使用和操作总结
string是C++标准库最重要的类型之一,string支持长度可变的字符串,其包含在string头文件中.本文摘自<C++PRIMER 第四版·特别版>和个人的一些总结. 一.声明和初始 ...
- C++标准库vector类型详解
Vector简介 vector是定义在C++标准模板库,它是一个多功能.能够操作多种数据结构和算法的模板类(关于模板类我们后面会介绍,如何创建自己的模板类).vector是一个容器,能够像容器一样存放 ...
- 把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...
- 把《c++ primer》读薄(3-3 标准库bitset类型)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型( ...
- C++标准库string类型
string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string类型的目的就是满足对字符串的一般应用. 本文地址:http://www.cn ...
- c/c++ 标准库 vector
c/c++ 标准库 vector 标准库 vector的小例子 test1~test7 #include <iostream> #include <vector> using ...
- zt C++标准库set类型
C++标准库set类型 分类: C++编程语言 2012-11-06 10:53 909人阅读 评论(0) 收藏 举报 目录(?)[-] 在set中添加元素 从set中获取元素 set容器只是单纯的键 ...
- 【C++ Primer每日刷】之三 标准库 string 类型
标准库 string 类型 string 类型支持长度可变的字符串.C++ 标准库将负责管理与存储字符相关的内存,以及提供各种实用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与 ...
- 把《c++ primer》读薄(3-1 标准库string类型初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...
随机推荐
- 利用squid 搭建简单的代理服务器
在虚拟机下做的测试. 虚拟主机1:(双网卡) eth0连接内网 ip地址为 192.168.0.100/24 eth1配置一个虚拟外网的ip 200.168.0.100/24 虚拟主机2: ip:20 ...
- 【php】windows安装PHP5.5+Apache2.4
php5.5和apache2.4的整合 看到php的版本升级了,就想试下新的特性 一.准备下载的文件 apache2.4.9 http://www.apachelounge.com/download/
- HighCharts之气泡图报错
HighCharts之气泡图报错 具体报错如下: uncaught exception: Highcharts error #17: www.highcharts.com/errors/17 ...
- Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection
1.错误描述 Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection[jdbc\:mysql\://loca ...
- 获取JSON对象的属性名称
1.问题背景 一个json对象,是以键值对组成,通过循环json对象,获取json对象中的属性名称 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- BFS POJ2251 Dungeon Master
B - Dungeon Master Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- table问题汇总
平时要使用 table 的次数说多不多,说少不少,但每次使用必定会被几个问题"坑"一下,所以这篇博客用来记录下table那些"小坑".但 table 也会有很多 ...
- javascript学习记录-2-18
对象定义的几种方法: var person=new Object(); person.name="111"; person.age=22; 或 var person={ na ...
- 主席树总结(经典区间第k小问题)(主席树,线段树)
接着上一篇总结--可持久化线段树来整理吧.点击进入 这两种数据结构确实有异曲同工之妙.结构是很相似的,但维护的主要内容并不相同,主席树的离散化.前缀和等思想也要更难理解一些. 闲话 话说刚学习主席树的 ...
- kali使用Fluxion钓鱼WiFi
先介绍一下这个软件 这个软件是一个可以生成一个钓鱼WiFi的软件,可以伪装成一个正常的WiFi,但是是没有密码的,但是其他信息都是一样的,一旦开启这个攻击,正常的那个AP就无法正常连接,只能连到这个伪 ...