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类型的使用和操作总结的更多相关文章

  1. C++标准库string类型的使用和操作总结

    string是C++标准库最重要的类型之一,string支持长度可变的字符串,其包含在string头文件中.本文摘自<C++PRIMER 第四版·特别版>和个人的一些总结. 一.声明和初始 ...

  2. C++标准库vector类型详解

    Vector简介 vector是定义在C++标准模板库,它是一个多功能.能够操作多种数据结构和算法的模板类(关于模板类我们后面会介绍,如何创建自己的模板类).vector是一个容器,能够像容器一样存放 ...

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

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...

  4. 把《c++ primer》读薄(3-3 标准库bitset类型)

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型( ...

  5. C++标准库string类型

    string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string类型的目的就是满足对字符串的一般应用. 本文地址:http://www.cn ...

  6. c/c++ 标准库 vector

    c/c++ 标准库 vector 标准库 vector的小例子 test1~test7 #include <iostream> #include <vector> using ...

  7. zt C++标准库set类型

    C++标准库set类型 分类: C++编程语言 2012-11-06 10:53 909人阅读 评论(0) 收藏 举报 目录(?)[-] 在set中添加元素 从set中获取元素 set容器只是单纯的键 ...

  8. 【C++ Primer每日刷】之三 标准库 string 类型

    标准库 string 类型 string 类型支持长度可变的字符串.C++ 标准库将负责管理与存储字符相关的内存,以及提供各种实用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与 ...

  9. 把《c++ primer》读薄(3-1 标准库string类型初探)

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...

随机推荐

  1. AfxBeginThread和CreateThread具体区别

    1. 具体说来,CreateThread这个函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程 中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁 ...

  2. css(外部样式表)中各种选择器(定义属性时)的优先级

    今天在学css的时候遇到一个问题,用css的外部样式表改变一个<p>元素的颜色,死活就是改变不了,最后才发现是优先级的问题(我自己想当然成后面的优先级就高了,犯了经验主义错误). 先给大家 ...

  3. asp.net mvc razor布局页中a标签的href的跳转问题

    笔者做了一个文件上传系统,文件上传后,保存在wwwroot目录的file文件夹中,并把该文件的路径保存到数据库中, 如这样的一个路径保存在数据库: file/b775f487-0127-41e0-9d ...

  4. jQuery.extend 函数使用详解

    JQuery的extend扩展方法:      Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.      一.Jquery的扩展方 ...

  5. Request对象实现请求转发区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

  6. Linux之磁盘与文件系统管理

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

  7. 利用SSH端口转发实现跨机器直接访问

    在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...

  8. Jmeter_从jdbc请求的响应中获取参数做关联

    在之前的文章-参数关联中,留个一个小尾巴,这里补充一下 http://www.cnblogs.com/Zfc-Cjk/p/8295495.html 1:从sql表中将需要取的数据查出来 2:我们需要把 ...

  9. 【BZOJ2748】音量调节(动态规划)

    [BZOJ2748]音量调节(动态规划) 题面 Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经 ...

  10. 下载文件,blob方式

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...