Vector;

头文件:

#include<vector>

using namespacestd;

定义:

vector<类型>q;//类同于  "类型 q[];"

vector<类型>q[1010] //类同于  “类型 q[1010][]”

操作:

往vector存入一个个数据

函数名:w. push_back(数据);

#include<iostream>

#include<vector>

using namespace std;

vector<int>w;

int main()

{

int x;

for(inti=0;i<7;i++)

{

scanf("%d",&x);

w.push_back(x);//在容器的末端塞入数据。这个容器很高端,你就理解为类似数组的存法。

}

}

2.我们来更好地理解vector里面的东西;

这里有两个函数:q.begin(),q.end();

从英文名begin,end很好理解肯定是开头和结尾;= =废话。

那么,我们来看看他是什么(数据);

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

printf("begin=%dend=%d\n",w.begin(),w.end());

}

结果:

很糟糕的数据- -那就是内存了。然后end-begin不就是7嘛~~~~~

我们称w.begin(),w.end()为迭代器(T^T好厉害的东西)迭代器是个所谓的复杂的指针【这里不多讲什么是迭代器,自己都不知道(啊,丢人..)】,那分别存了什么值呢?

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

printf("begin=%dend=%d\n",*w.begin(),*w.end());

}

结果:

我们很好理解,w.begin()"指向"了第一个值—0,但是end呢,不是6?w.end()是末尾出去的那个,相当于我们定义数组a[10],我们在查询w.end(),就相当于查询a[10]这个元素。那么也就是说最后一个值,就是*(w.end()-1);

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

printf("begin=%d end=%d 最后一个是:%d\n",*w.begin(),*w.end(),*(w.end()-1));

}

结果:

然后就是遍历:

这里有一个函数w.size()指这个vector所存的值的区域大小

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

printf("size=%d\n",w.size());

}

结果:

那好,我们就可以遍历了;

这里有一种神奇的用法就是,和数组一样的!!!为什么呢?T^T不知道啊;

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

for(int j=0;j<w.size();j++)

{

printf("第%d个=%d\n",j+1,w[j]);

}

}

结果:

还有一种就是我们知道,w.begin(),w.end()是[迭代器](一种复杂的【指针】),那么我们用同样的【迭代器】去遍历,也可以吧;

定义:vector<int>::iterator b;

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

vector<int>::iterator b;

int cont=1;

for(b=w.begin();b!=w.end();b++)

{

printf("第%d个=%d\n",cont++,*b);

}

}

结果:

还有就是清空:

w.clear();

#include<stdio.h>

#include<iostream>

#include<vector>

using namespacestd;

int main()

{

vector<int>w;

for(int i=0;i<7;i++)    //我们把 i 塞进去

{

w.push_back(i);

}

vector<int>::iterator a;

int cont=1;

for(a=w.begin();a!=w.end();a++)

{

printf("第%d个=%d\n",cont++,*a);

}

w.clear();

printf("begin=%dend=%d\n",w.begin(),w.end());

if(w.begin()==w.end())

printf("清空啦啦啦啦!!!\n");

vector<int>::iterator b;

cont=1;

for(b=w.begin();b!=w.end();b++)

{

printf("第%d个=%d\n",cont++,*b);

}

}

结果:

OK,其他还有很多什么翻转啊,很高级的东西,试一试就什么都知道了。

转载于:https://www.cnblogs.com/keyboarder-zsq/p/5934553.html

vector理解一波~~~相关推荐

  1. 【转】理解小波消失矩

    原文地址:https://blog.csdn.net/xiaoyanwin/article/details/15657197?depth_1-utm_source=distribute.pc_rele ...

  2. 看图轻松理解斐波那契数列

    前言 推出一个新系列,<看图轻松理解数据结构和算法>,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握.本系列包括各种堆.各种队列.各种列表.各种树.各种图.各种排序等等几十篇的 ...

  3. 不是吧!做了3年Android还没看过OkHttp源码?好吧,带你彻底理解一波!

    前言 现在Android界的网络请求已经是OkHttp和Retrofit的天下了,Retrofit本质上也是将请求委托给了OkHttp,所以我们如果想要能够更加全面的使用和掌握OkHttp,了解其源码 ...

  4. 2022 年了,重新理解一波设备驱动 | Linux 驱动

    哈喽,我是老吴. 非常怀念写文章的感觉. 昨晚复习了一些 Linux 驱动的基础知识,给大家分享一下吧. 先说结论: 多年来,我接触到的 Linux 驱动教程大多都是从 0 编写,这样对初学者而言最大 ...

  5. 异步电机发波方式总结与比较

    导读:本期文章主要介绍一下电机的发波方式(滞环.SPWM和SVPWM),总结比较一下它们发波的工作原理和差异之处. 本文中的仿真模块是基于异步电机的.如果需要文中的仿真模型,请关注微信公众号:浅谈电机 ...

  6. 剑指offer_第7题_斐波那契数列

    题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...

  7. c++ vector查找_C++ vector内存分配策略浅析

    (给CPP开发者加星标,提升C/C++技能) 来源:邱国禄https://blog.csdn.net/qiuguolu1108/article/details/107146184 vector是一个封 ...

  8. GMM、fisher vector、SIFT与HOG特征资料

    GMM与fisher vector理解 查阅fisher vector资料时看到的几篇介绍fisher vector很不错的博文,要了解fisher vector你需要先了解GMM高斯混合模型,这两篇 ...

  9. C++ vector容器中用erase函数和迭代器删除重复元素问题分析

    第一种写法: #include <iostream> #include <vector> using namespace std;int main() {vector<i ...

  10. 优先队列——斐波那契堆(without source code)

    [0]README 0.1) 本文部分内容转自 数据结构与算法分析,旨在理解 斐波那契堆 的基础知识: 0.2) 文本旨在理清 斐波那契堆的 核心idea,还没有写出源代码实现,表遗憾: 0.3)从实 ...

最新文章

  1. 翻译翻译:什么叫架构?
  2. 通俗介绍拉普拉斯变换,傅里叶变换和z变换
  3. 微软在你的计算机里隐藏的秘密
  4. python实验七答案_Python实验报告七
  5. 【kafka】Flink 消费 kafka Received unknown topic topic/partition may not exist Describe access to it
  6. java面向对象测试题二_JAVA面向对象-测试题
  7. lua能在stm32arm上运行吗_IOS App能在Mac运行!苹果这黑科技能撼动微软吗?
  8. 一种增加先验知识库的贝叶斯网络推理模型
  9. train_test_split按比例划分
  10. 机器学习、⼈⼯智能、深度学习是什么关系?
  11. linux命令提示符详解
  12. 音乐节拍自动标记插件 BeatEdit 2 for Pr
  13. 按键精灵文字识别插件_按键精灵课程学习目录
  14. 微信跳转手机默认浏览器实现微信扫一扫功能扫码直接下载apk
  15. Ueditor编辑器插入外链视频支持手机播放【iframe标签】
  16. C++中read和write的区别
  17. dva处理_dva 源码解读
  18. python中split_python中split是什么意思
  19. 书评:《软件创新之路-冲破高技术营造的牢笼》
  20. 别再花时间统计考勤数据了,这个报表统计神器才是你最后出路

热门文章

  1. python程序员到哪里_Python程序员都知道的入门知识の五
  2. U-net使用, 图像分割(边缘检测)
  3. python 包的使用 (三)——turtle:使用海龟图形(turtle graphics)绘制图像
  4. MySQL中 char和varchar的区别
  5. python resize重置大小
  6. linux 隐藏字符 h,webpack手动配置
  7. 链接服务器 修改端口号,服务器修改远程链接端口号
  8. python怎么创建变量_创建一个新变量,它是python中另一个变量的...
  9. pads中如何设置等长_如何给PDF中的文本设置高亮显示
  10. chainmaker-go-sdk get cert hash failed, get cert hash failed, send QUERY_SYSTEM_CONTRACT failed