vector是C++标准库STL中的一个重要的类模板,相当于一个更加健壮的,有很多附加能力的数组

使用vector前首先要包含头文件

  1. #include<vector> 

1.vector的常用操作:

  1. vector < int > vector_1(size) //创建一个数组vector_1,长度为size
  2. vector<int> vector_2(vector_1) //创建一个数组vector_2,并把vector_1中所有元素复制过去
  3. vector<int> vector_3(vector_1.begin(),vector_1.begin()+N)
  4. //创建一个数组vector_3,并把vector_1中前N个元素复制过去
  5. vector < int > vector_4(size,num) //创建一个数组vector_1,长度为size,初始化元素为num
  6. vector.resize(size); //重新设置数组大小为size
  7. vector.front() //返回数组首元素
  8. vector.back() //返回数组尾元素
  9. vector.begin() //获取数组头指针
  10. vector.end() //获取数组尾指针
  11. vector.size() //返回数组的长度
  12. vector[i] //访问数组的第i-1个元素
  13. vector.insert(vector.begin()+N,elem); //在数组的第N个元素后插入元素elem.
  14. vector.push_back(elem); //在数组的最后一个元素后插入一个元素elem.
  15. vector.erase(vector.begin()+M,vector.begin()+N);
  16. //删除数组的第M个到第N个元素
  17. vector.pop_back(); //删除数组的最后一个元素
  18. vector.clear(); //清空数组中的元素
  19. vector.empty(); //判断数组是否为空,若为空返回true,不为空返回false

例:

  1. /**********
  2. *Author:Pug_
  3. *Time:2019-3-1 22:00:45
  4. *Version:1.0
  5. *FUnction:Use of vector
  6. ***********/
  7. #include <iostream>
  8. #include <iomanip>
  9. #include <cstring>
  10. #include <cstdio>
  11. #include <cstdlib>
  12. //首先要包含头文件
  13. #include<vector>
  14. using namespace std;
  15. int main(){
  16. //vector是一个可存放任意类型数据的动态数组
  17. //数据类型除了int类型还可为其他的类型 ,size可为一个常量或变量
  18. //初始化后向量integer中默认值为0;
  19. int size = 10;
  20. vector < int > integers(size);
  21. //复制向量integer,复制为integers1
  22. vector<int> integers1(integers);
  23. //复制向量integer前5个元素,复制为integers2
  24. vector<int> integers2(integers.begin(),integers.begin()+5);
  25. //创建 integers3长度为size,默认值为1
  26. vector < int > integers3(size,1);
  27. integers.front();//获取首元素
  28. integers.back();//获取尾元素
  29. integers.begin();//获取头指针
  30. integers.end(); //获取尾指针
  31. //获取向量 integers的长度
  32. cout<<"integers的长度:"<<integers.size()<<endl;
  33. //通过下标读取元素
  34. for(int i = 0;i<integers.size();i++){
  35. cout<<setw(4)<<integers[i];
  36. }
  37. //通过下标输入元素
  38. for(int i = 0;i<integers.size();i++){
  39. cin>>integers[i];
  40. }
  41. //在 integers的第n个元素后插入元素123.
  42. int n = 1;
  43. integers.insert(integers.begin()+n,123);
  44. //在integers的最后一个元素后插入一个元素 123.
  45. integers.push_back(123);
  46. //删除integers的第m个到第n个元素 (第1个到第3个)
  47. int m = 1;
  48. n = 3;
  49. integers.erase(integers.begin()+m,integers.begin()+n);
  50. //删除integers的最后一个元素
  51. integers.pop_back();
  52. //清空 integers中的元素
  53. integers.clear();
  54. //返回integers是否为空,若为空返回1,不为空返回0
  55. integers.empty();
  56. return 0;
  57. }

2.使用vector 创建二维数组

  1. vector< vector<int> > matrix_vector(SIZE_ROW, vector<int> (SIZE_COL));
  2. //创建一个二维数组,行数为SIZE_ROW,列数为SIZE_COL.
  1. /**********
  2. *Author:Pug_
  3. *Time:2019-3-14 22:00:45
  4. *Version:1.0
  5. *FUnction:Use of 2 d vector
  6. ***********/
  7. #include <iostream>
  8. #include <iomanip>
  9. #include <cstring>
  10. #include <cstdio>
  11. #include <cstdlib>
  12. #include <vector>
  13. using namespace std;
  14. int main(){
  15. //创建一个3行3列数组
  16. vector< vector<int> > v2d(3, vector<int> (3));
  17. //赋值
  18. for(int i = 0;i<v2d.size();i++){
  19. for(int j = 0;j<v2d[0].size();j++){
  20. v2d[i][j] = i*v2d[0].size()+j;
  21. }
  22. }
  23. //输出
  24. for(int i = 0;i<v2d.size();i++){
  25. for(int j = 0;j<v2d[0].size();j++){
  26. cout<<setw(5)<<v2d[i][j];
  27. }
  28. cout<<endl;
  29. }
  30. cout<<endl<<endl;
  31. //将二维数组重新设置行列数
  32. //先重新设置行数再重新设置列数
  33. v2d.resize(8);
  34. for(int i = 0;i<v2d.size();i++){
  35. v2d[i].resize(8);
  36. }
  37. //赋值
  38. for(int i = 0;i<v2d.size();i++){
  39. for(int j = 0;j<v2d[0].size();j++){
  40. v2d[i][j] = i*v2d[0].size()+j;
  41. }
  42. }
  43. //输出
  44. for(int i = 0;i<v2d.size();i++){
  45. for(int j = 0;j<v2d[0].size();j++){
  46. cout<<setw(5)<<v2d[i][j];
  47. }
  48. cout<<endl;
  49. }
  50. return 0;
  51. }

C++标准库类模板vector的更多相关文章

  1. C++标准库类模板(stack)和 队列(queue)

    在C++标准库(STL)中有栈和队列的类模板,因此可以直接使用 1.栈(stack):使用栈之前,要先包含头文件 : #include<stack> stack.push(elem); / ...

  2. C++ 标准库类型-String,Vector and Bitset

    <C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如 ...

  3. C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型

    一.string    #include <string>  using std::string    初始化函数:    string s1;        默认构造函数 s1 为空串 ...

  4. 标准库类型之vector

    上篇中遗留了一个小作业,就是用string中的find_first_not_of和find_last_not_of函数来实现字符串左右空格的去除,先来完成它,实现的思路是先来编写去除左空格,然后再编写 ...

  5. 发布一个stl标准库容器类(vector/list)的安全删除方法

    话不多说,看代码. #include <functional> #ifndef ASSERT #include <cassert> #define ASSERT assert ...

  6. ZT 类模板Stack的实现 by vector

    *//*第3章 类模板 与函数相似,类也可以被一种或多种类型参数化.容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素.只要使用类模板,你就可以实现容器类,而不需要确定容器中元素 ...

  7. 谈谈两种标准库类型---string和vector

    两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库 ...

  8. C++primer第三章标准库类型

    除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...

  9. Go标准库之html/template

    html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容.它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/templ ...

随机推荐

  1. [可行]setoolkit生成木马软件远程控制实例

    查看原文 选1,social-ensineering attacks 选4,create a payload and listener 选2,Windows Reverse_TCP Meterpret ...

  2. Prolific PL2303 usb 转串口Win8 Win8.1驱动

    买了根USB转RS232串口的线,Pl2303芯片的.卖家和官方都称不支持Win8,但鄙人不信在Win7上能用在Win8/8.1就用不起来. 官方最新版的v1.9.0的驱动描述说不支持Win 8/8. ...

  3. 编写高质量代码改善C#程序的157个建议——建议134:有条件地使用前缀

    建议134:有条件地使用前缀 在.NET的设计规范中,不建议使用前缀.但是,即便是微软自己依然广泛的使用这前缀. 最典型的前缀是m_,这种命名一方面是考虑到历史沿革中的习惯问题,另一方面也许我们确实有 ...

  4. 设计模式9---装饰模式(Decorator Pattern)

    装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上一些责任.换言之,客户端 ...

  5. Logstash 算术运算操作

    需求:input为json,output为ES,需使用filter提取json中的某个字段,并执行加法.加法.乘法等算法操作 思路:mutate过滤器+ruby过滤器实现 避坑:根据ES及Logsta ...

  6. thinkjs系统服务启动

  7. SharpMap入门教程

    SharpMap是一个基于.NET Framework 4,采用C#开发的地图渲染引擎,非常易于使用.本教程针对SharpMap入门及开发,讲述如何基于SharpMap组件渲染Shapefile数据. ...

  8. WEB应用从服务器主动推送的方法

    1.短轮询 2.长轮询 3.iframe 4.sse 5.Web Scoket

  9. ASP.NET MVC 缓存页面(方法)

  10. ASP .Net Core 2.0 修改默认端口

    ASP .Net Core 的默认端口是5000,如果想在同一台服务器上运行多个实例,就不能都监听5000端口了,需要每一个实例都监听不同的端口.当然,如果您正在使用IIS或者Jexus来托管,可以不 ...