vector理解一波~~~
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理解一波~~~相关推荐
- 【转】理解小波消失矩
原文地址:https://blog.csdn.net/xiaoyanwin/article/details/15657197?depth_1-utm_source=distribute.pc_rele ...
- 看图轻松理解斐波那契数列
前言 推出一个新系列,<看图轻松理解数据结构和算法>,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握.本系列包括各种堆.各种队列.各种列表.各种树.各种图.各种排序等等几十篇的 ...
- 不是吧!做了3年Android还没看过OkHttp源码?好吧,带你彻底理解一波!
前言 现在Android界的网络请求已经是OkHttp和Retrofit的天下了,Retrofit本质上也是将请求委托给了OkHttp,所以我们如果想要能够更加全面的使用和掌握OkHttp,了解其源码 ...
- 2022 年了,重新理解一波设备驱动 | Linux 驱动
哈喽,我是老吴. 非常怀念写文章的感觉. 昨晚复习了一些 Linux 驱动的基础知识,给大家分享一下吧. 先说结论: 多年来,我接触到的 Linux 驱动教程大多都是从 0 编写,这样对初学者而言最大 ...
- 异步电机发波方式总结与比较
导读:本期文章主要介绍一下电机的发波方式(滞环.SPWM和SVPWM),总结比较一下它们发波的工作原理和差异之处. 本文中的仿真模块是基于异步电机的.如果需要文中的仿真模型,请关注微信公众号:浅谈电机 ...
- 剑指offer_第7题_斐波那契数列
题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...
- c++ vector查找_C++ vector内存分配策略浅析
(给CPP开发者加星标,提升C/C++技能) 来源:邱国禄https://blog.csdn.net/qiuguolu1108/article/details/107146184 vector是一个封 ...
- GMM、fisher vector、SIFT与HOG特征资料
GMM与fisher vector理解 查阅fisher vector资料时看到的几篇介绍fisher vector很不错的博文,要了解fisher vector你需要先了解GMM高斯混合模型,这两篇 ...
- C++ vector容器中用erase函数和迭代器删除重复元素问题分析
第一种写法: #include <iostream> #include <vector> using namespace std;int main() {vector<i ...
- 优先队列——斐波那契堆(without source code)
[0]README 0.1) 本文部分内容转自 数据结构与算法分析,旨在理解 斐波那契堆 的基础知识: 0.2) 文本旨在理清 斐波那契堆的 核心idea,还没有写出源代码实现,表遗憾: 0.3)从实 ...
最新文章
- 翻译翻译:什么叫架构?
- 通俗介绍拉普拉斯变换,傅里叶变换和z变换
- 微软在你的计算机里隐藏的秘密
- python实验七答案_Python实验报告七
- 【kafka】Flink 消费 kafka Received unknown topic topic/partition may not exist Describe access to it
- java面向对象测试题二_JAVA面向对象-测试题
- lua能在stm32arm上运行吗_IOS App能在Mac运行!苹果这黑科技能撼动微软吗?
- 一种增加先验知识库的贝叶斯网络推理模型
- train_test_split按比例划分
- 机器学习、⼈⼯智能、深度学习是什么关系?
- linux命令提示符详解
- 音乐节拍自动标记插件 BeatEdit 2 for Pr
- 按键精灵文字识别插件_按键精灵课程学习目录
- 微信跳转手机默认浏览器实现微信扫一扫功能扫码直接下载apk
- Ueditor编辑器插入外链视频支持手机播放【iframe标签】
- C++中read和write的区别
- dva处理_dva 源码解读
- python中split_python中split是什么意思
- 书评:《软件创新之路-冲破高技术营造的牢笼》
- 别再花时间统计考勤数据了,这个报表统计神器才是你最后出路
热门文章
- python程序员到哪里_Python程序员都知道的入门知识の五
- U-net使用, 图像分割(边缘检测)
- python 包的使用 (三)——turtle:使用海龟图形(turtle graphics)绘制图像
- MySQL中 char和varchar的区别
- python resize重置大小
- linux 隐藏字符 h,webpack手动配置
- 链接服务器 修改端口号,服务器修改远程链接端口号
- python怎么创建变量_创建一个新变量,它是python中另一个变量的...
- pads中如何设置等长_如何给PDF中的文本设置高亮显示
- chainmaker-go-sdk get cert hash failed, get cert hash failed, send QUERY_SYSTEM_CONTRACT failed