vector 遍历
vector向量容器,是数组的一个泛化推广。实现了类似于数据结构中顺序表的操作。
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。
下面给出了vector的几种遍历
#include<iostream>
using namespace std;
#include<vector>
void print(const vector<int> &v);
void display1(vector<int> &v);
void display2(vector<int> &v);
int main(void)
{
vector<int> v;//构造一个空元素的vector对象
for(int i=;i<6;i++)
{
v.push_back(i);
}
cout<<"v的值为:";
print(v);
cout<<"v的值为:";
display1(v);
cout<<"v的倒序值为:";
display2(v); vector<int>::iterator i;
cout<<"v.begin()的值:"<<*v.begin()<<endl;
cout<<"v.end()-1的值:"<<*(v.end()-)<<endl;// cout<<*v.end();会报错
cout<<"v.rbegin()的值:"<<*v.rbegin()<<endl;
cout<<"v.rend()-1的值:"<<*(v.rend()-)<<endl;
getchar();
}
void print(const vector<int> &v)//使用数组遍历
{
for(int i=;i<v.size();i++)//v.size()得到vector元素的个数,因为和数组一样从0开始,所以遍历到v.size()-1;
{
cout<<v[i]<<" ";
}
cout<<endl;
} void display1(vector<int> &v)//使用vector迭代器遍历
{
vector<int>::iterator i;
for(i=v.begin();i<v.end();i++)
{
cout<<*i<<" ";
}
cout<<endl;
} void display2(vector<int> &v)//使用反向迭代器遍历
{
vector<int>::reverse_iterator i;
for(i=v.rbegin();i!=v.rend();i++)
{
cout<<*i<<" ";
}
cout<<endl;
}
运行结果:
1.数组的形式遍历,size()函数得到vector的元素个数,类似于数组中的length;使用[]符号,和数组的遍历一样。
2.使用迭代器遍历。
begin:返回指向vector第一个元素的迭代器
end:返回指向vector末尾的迭代器(注意:是指向vector末尾,不是指向vector的最后一个元素),若使用cout<<*v.end()会报错
vector 遍历的更多相关文章
- map/vector遍历删除
map遍历删除 map<int, vector<int>>::iterator it = g_map.begin(); for (; it != g_map.end(); /* ...
- [转]c++ vector 遍历方式
挺有趣的,转来记录 随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化. vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写 ...
- std::vector遍历
std::vector是我在标准库中实用最频繁的容器.总结一下在遍历和创建vector时需要注意的一些地方. 在不考虑线程安全问题的前提下,在C++11中有五种遍历方式. 方式一 for (size_ ...
- vector的几种初始化和遍历
随着C++11标准的出现,vector出现了新的初始化和遍历用法,但是vs2010和较高版本并没有能完全支持C++11标准,所以我就将它的所有的用法归纳了一下. vector的初始化 vector基本 ...
- java提高篇(二九)-----Vector
在java提高篇(二一)-–ArrayList.java提高篇(二二)-LinkedList,详细讲解了ArrayList.linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现 ...
- Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
概要 学完ArrayList和LinkedList之后,我们接着学习Vector.学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.第1部分 Vec ...
- java 中遍历hashmap 和hashset 的方法
一.java中遍历hashmap: for (Map.Entry<String, Integer> entry : tempMap.entrySet()) { String ...
- java提高篇---Vector
对于List接口这里还介绍一个它的实现类Vector,Vector 类可以实现可增长的对象数组. 一.Vector简介 Vector可以实现可增长的对象数组.与数组一样,它包含可以使用整数索引进行访问 ...
- C++vector迭代器失效的问题
转载:http://blog.csdn.net/olanmomo/article/details/38420907 转载:http://blog.csdn.net/stpeace/article/de ...
随机推荐
- CentOS安装scp命令
scp这东西应该属于openssh-clients这个包,运行: yum -y install openssh-clients 再运行scp就可以了,再次运行: .txt 注意,scp 命令操作的两端 ...
- ABP官方文档翻译 3.5 规约
规约 介绍 示例 创建规范类 使用仓储规约 组合规约 讨论 什么时候使用? 什么时候不使用? 介绍 规约模式是一种特别的软件设计模式,通过使用布尔逻辑将业务规则链接起来重新调配业务规则.(维基百科). ...
- UVW源码漫谈(三)
咱们继续看uvw的源码,这次看的东西比较多,去除底层的一些东西,很多代码都是连贯的,耦合度也比较高了.主要包括下面几个文件的代码: underlying_type.hpp resource.hpp l ...
- 《Python网络编程》学习笔记--UDP协议
第二章中主要介绍了UDP协议 UDP协议的定义(转自百度百科) UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务 ...
- Oracle 12cR1 RAC 在VMware Workstation上安装(下)—静默安装
Oracle 12cR1 RAC 在VMware Workstation上安装(下)—静默安装 1.1 静默安装 1.1.1 静默安装grid 安装之前使用脚本进行校验,确保所有的failed选项 ...
- BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]
3566: [SHOI2014]概率充电器 题意:一棵树,每个点\(q[i]\)的概率直接充电,每条边\(p[i]\)的概率导电,电可以沿边传递使其他点间接充电.求进入充电状态的点期望个数 糖教题解传 ...
- BZOJ 3091: 城市旅行 [LCT splay 期望]
3091: 城市旅行 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1454 Solved: 483[Submit][Status][Discuss ...
- Xposed 初尝
1.初次使用xposed,之前直至其名,不闻其用. 2.相关引用配置上图 build.gradle配置,如下: dependencies { compile fileTree(include: ['* ...
- Docker小记 — Docker Engine
前言 用了Docker方才觉得生产环境终于有了他该有的样子,就像集装箱普及之后大型货轮的价值才逐渐体现出来,Docker详细说明可查阅"官方文档".本篇为Docker Engine ...
- 阶段小项目2:显示bin格式图片
#include<stdlib.h>#include<stdio.h>#include<string.h>#include<error.h>#inclu ...