---恢复内容开始---Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型

类的作用,是一种顺序容器,支持随机访问,可动态分配空间(扩充:销毁旧内存,更新迭代器),线性的数据结构

《《《《    扩充:》》》》

vector容器类型

vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。

1.对象的操作:

1.push_back   在数组的最后添加一个数据

2.pop_back    去掉数组的最后一个数据

3.at               得到编号位置的数据

4.begin           得到数组头的指针(用于迭代器)

5.end             得到数组的最后一个单元+1的指针 (指向末端元素的下一个,不存在的元素)

6.front        得到数组头的引用

7.back            得到数组的最后一个单元的引用

8.max_size     得到vector最大可以是多大

9.capacity       当前vector分配的大小

10.size           当前使用数据的大小(返回v中元素的个数,v.size())

11.resize         改变当前使用数据的大小,如果它比当前使用的大,者填充默认值

12.reserve      改变当前vecotr所分配空间的大小

13.erase         删除指针指向的数据项

14.clear          清空当前的vector

15.rbegin        将vector反转后的开始指针返回(其实就是原来的end-1)

16.rend          将vector反转构的结束指针返回(其实就是原来的begin-1)

17.empty        判断vector是否为空 (v.empty())

18.swap         与另一个vector交换数据

2.使用:

a:数组习惯使用    (已知大小,索引元素)

oo: vector<int>v(10);类似定义数组,可用v[i]来访问

oo:vector<int>v(10,-1);定义了v,包含10个int型初始值为-1

oo: vector<int>v(a,a+6);int a{1,2,3,4,5,6,7};将a中的6个元素拷贝到v中

  1. vector<string>s;//vector可被另一个vector初始化,也可赋值给另一个vector
  2. void init_and_assigh()
  3. {
  4. vector<string>names(s);//另一个vector初始化
  5. s=names;//拷贝
  6. }

b:STL习惯用法(定义空vector,插入元素,使用迭代器)

//两种方法数据的存入和输出

  1. #include<cstdio>
  2. #include<vector>
  3. #include<iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. int i=;
  8. vector<int>v;
  9. for(i=;i<;i++)
  10. {
  11. v.push_back(i);
  12. }
  13. /****************
  14. for(i=0;i<v.size();i++)
  15. {
  16. cout<<v[i]<<" ";
  17. }
  18. cout<<endl;
  19. *******************/
  20. vector<int>::iterator iter;
  21. for(iter=v.begin();iter!=v.end();iter++)
  22. {
  23. cout<<*iter<<endl;
  24. }
  25. return ;
  26. }//两种方法数据的存入输出

//对二维的定义

  1. #include<cstdio>
  2. #include<vector>
  3. #include<iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. int i=;
  8. vector<int>v;
  9. for(i=;i<;i++)
  10. {
  11. v.push_back(i);
  12. }
  13. /* for(i=0;i<v.size();i++)
  14. {
  15. cout<<v[i]<<" ";
  16. }
  17. cout<<endl;*/
  18. vector<int>::iterator iter;
  19. for(iter=v.begin();iter!=v.end();iter++)
  20. {
  21. cout<<*iter<<endl;
  22. }
  23. return ;
  24. }
  1. #include<stdio.h>
  2. #include<vector>
  3. #include<iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. int i=,j=;
  8. vector<vector<int> >Array;
  9. vector<int>line;
  10. for(j=;j<;j++)
  11. {
  12. Array.push_back(line);//初始化,存入元素
  13. for(i=;i<;i++)
  14. {
  15. Array[j].push_back(i);
  16. }
  17. }
  18. for(j=;j<;j++)
  19. {
  20. for(i=;i<Array[j].size();i++)
  21. {
  22. cout<<Array[j][i]<<" ";
  23. }
  24. cout<<endl;
  25. }
  26. return ;
  27. }

初学鄙陋,只看到了皮毛。

---恢复内容结束---

初入水:vector的更多相关文章

  1. C++ 初读vector

    vector 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象. Character 高效 C++标准要 ...

  2. 数据结构《21》----2014 WAP 初试题----Immutable queue

    2014 WAP初试题----实现一个不可变的队列: 看似很简单..实则,不同的版本效率的差距可能是巨大的..甚至难以想象.. 之前用STL库的queue进行了对比,差别非常大.. 用上一篇文章的im ...

  3. 标准库类型vector

    标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象.因为vector“容纳着”其他对象,所以它被称为容器. 要想使用vector, ...

  4. 平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】

    平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是 ...

  5. C++模板之Vector与STL初探

    STL源码初步接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称.从根本上说,STL是一些"容器"的集 ...

  6. SuperMap iClient for JavaScript初入

    SuperMap iClient for JavaScript初入 介绍SuperMap for Js的简单使用. 推荐先看下这篇文档:SuperMap iClient for JavaScript ...

  7. C++标准模板库(STL)之Vector

    在C中,有很多东西需要自己实现.C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能. 具体容器链 ...

  8. C++学习3--编程基础(vector、string、三种传参)

    知识点学习 Vector容器 vector是C++标准程序库中的一个类,其定义于头文件中,与其他STL组件一样,ventor属于STD名称空间: ventor是C++标准程序库里最基本的容器,设计之初 ...

  9. vector中删除的注意事项

    erase的函数原型有两种形式: iterator erase(iterator position); iterator erase(iterator first, iterator last); 例 ...

随机推荐

  1. Android基础总结(八)

    服务两种启动方式(掌握) startService 开始服务,会使进程变成为服务进程 启动服务的activity和服务不再有一毛钱关系 bindService 绑定服务不会使进程变成服务进程 绑定服务 ...

  2. js判断浏览器类型

    使用navigator.userAgent和来判断 PC端: <script type="text/javascript">var ua=navigator.userA ...

  3. input type="datetime-local" 时placeholder不显示

    一个坑,input的type="datetime-local" 时,电脑上会显示提示,如图 <input type="datetime-local" na ...

  4. StringTokenizer类的使用

    StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数. 1.构造函数 public StringTokenizer(String str) public Str ...

  5. easyui rowStyler属性

    1.项目中示例 { idField : 'id', // 只要创建数据表格 就必须要加 ifField title : title, fit : true, url : top.baseUrl+ 'c ...

  6. .Net 高效开发之不可错过的实用工具

    Visual Studio Visual Studio Productivity Power tool: VS 专业版的效率工具. Web Essentials: 提高开发效率,能够有效的帮助开发人员 ...

  7. Java数据结构——平衡二叉树的平衡因子(转自牛客网)

    若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性.首先要找出插入新结点后失去平衡的最小子树根结点的指针.然后再调整这个子树中有关结点之间的链接关系,使之成为新的平衡子树.当失去平衡的最小子树被 ...

  8. XmlRootElement JAXB

    http://desert3.iteye.com/blog/1570092(文章已经很好) 看了那边文章以后尝试后写点直白的 PROPERTY: JAXB 绑定类中的每个获取方法/设置方法对将会自动绑 ...

  9. js笔记

    1.克隆对象 克隆数组: var country=['中国','美国']; var copyCountry=country.slice(0); 克隆对象: var people={sex:'man', ...

  10. 深入理解javascript原型和闭包 (转)

    该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分--原型和闭包,当然,肯定少不了原型链和作用域链.帮 ...