vector数组用法及举例

vector详解

1.调用vector的头文件

注意:c++编程中填写这个头文件

2.vector的用法

注意:大概来讲,vector就是一个变长数组,与a[]这种普通数组不同的是,他不用定义多长,是根据用户的用法变化的,同时它的用法及方法也与普通数组不同

3.vector的存取方法及特殊

注意:vector的存取与栈相同(即一种无盖有底的“洞”,从顶端存入,从顶端取出);

3.vector数据的读取及其他方法

注意:iterator是一种迭代器,即一种读取器,其功能类似for循环;利用iterator来输出或存取大量的数据;


vector优势:

大小能否变化

vector属于变长容器,即可以根据数据的插入删除重新构建容器容量,但array和数组属于定长容量。

初始化

数组不能将数组的内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值,而向量可以。

vector提供了更好的数据访问机制,即可以使用及at访问方式,使得访问更加安全。而数组只能通过下标访问,在程序的设计过程中,更容易引发访问错误。

vector提供了size和判空的获取机制,而数组只能通过遍历或者通过额外的变量记录数组的size。

vector提供了可以动态插入和删除元素的机制,而array和数组则无法做到,或者说array和数组需要完成该功能则需要自己实现完成。

深度搜索:内存中的位置

C++中数组为内置的数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成;vector,存放在堆中,由STL库中程序负责内存的分配和释放,使用方便。


vector实例帮助理解

题目描述

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。

输入格式

一行内输入一串整数,以0结束,以空格间隔。

输出格式

一行内倒着输出这一串整数,以空格间隔。

输入输出样例

输入

3 65 23 5 34 1 30 0

输出

30 1 34 5 23 65 3

具体代码:

#include<iostream>
#include<vector>
using namespace std;

int main(){
	vector<int> a;
	int count=0;
	int x;
  while(cin>>x){
  	if(x==0) break;
  	else a.push_back(x);
  }
  for(vector<int>::iterator it=a.end()-1;it>=a.begin();it--){  //iterator迭代器输入输出
  	cout<<(*it)<<" ";
  }   

	return 0;
}

 使用iterator迭代器进行迭代输入输出;

注意:vector数组由于其特殊性适用一些算法,但也不适用一些场合,所以一般使用普通的数组即可;

原文地址:https://www.cnblogs.com/zmz-zero/p/12260724.html

时间: 2024-10-28 22:45:11

vector数组用法及举例的相关文章

C++ Iterator迭代器介绍及Iterator迭代器用法代码举例

C++ Iterator迭代器介绍 迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针.举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历.有这么几种迭代器如下: 迭代器 描述 input_iterator 提供读功能的向前移动迭代器,它们可被进行增加(++),比较与解引用(*). output_iterator 提供写功能的向前移动迭代器,它们可被进行增加(++),比较与解引用(*). forward_iterator 可向前移动的,同时具有读写功能的迭代器.同

c++中vector的用法详解

c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector 还有一定要加上using namespace std; 2.变量声明: 2.1 例:声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个

Java源代码分析之Vector数组

Vector源码分析 每个Java程序员应该的特性 可变长数组(grow or shrink) 能够使用索引获取值(accessed using an integer index) 多线程环境下线程安全 类图 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; /* vector 通过

STL中的Vector相关用法

STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int>是一种数据类型. Vector的存储空间是连续的,list不是连续存储的. 1. 定义和初始化 vector< typeName > v1; //默认v1为空,故下面的赋值是错误的v1[0]=5;//v2是v1的一个副本,若v1.size()>v2.size()则赋值后v2.size()被

leetcode第27题:删除vector数组的元素(array)

题目: Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. 这个比较简单,掌握vector的用法即可. 1 int removeElement(vector<int>

vector数组

1.Vector数组可以认为是大小的数组. 2.它可以实现排序,函数是sort(v.begin(),v.end() . 3.它可以实现二分查找功能,函数是lower_bound(v.begin(),v.end(),x).查找的是值x.返回的是查找值的指针.如果查找返回的是指针v.end()或者发现*it!=x那么容器里没有x这个数. 实例代码: 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring>

妙用Pixel bender执行复杂运算/普通数据运算 传递Vector数组

最近发现pixel bender有两个特殊点: 1.Input Image4,不单单可以用BitmapData来初始化,也可以用Vector.<Number>初始化. 2.ShaderJob,可以使用Vector.<Number>接收pb的运算结果,同时,这个输出结果不限于[0-1].结果会从上往下一行一行的把每个像素的各通道信息填入到Vector中 基于这两点,就可以发现,可以把复杂的数学运算交给pb.尤其是类似于图像这样二维的信息,例如3d建模中,水面波动的计算. AS代码:

PHP数组处理函数举例

在PHP中,存储在数组中的值成为数组元素,数组有一维数组和多维数组之分,每个数组元素的索引也称为关键字,访问数组元素可以通过索引.数组处理函数举例如下: 一.创建数组 1.使用array()函数创建数组:array array([$key=>]$value,...) $key=>$value,定义了关键字的键名和值,自定义键名可以字符串或数字.如果省略键名,函数会自动产生从0开始的整数作为键名.如果只对某个给出的值没有指定键名,则键名取该值前面最大的整数键名+1后的值. 注意:①可以使用pri

awk数组用法

两个文件,从文件b首列查找出等于文件a的行并输出[[email protected] ~]# cat a1367[[email protected] ~]# cat b1 2 32 3 43 4 54 5 65 6 76 7 87 8 9 shell脚本[[email protected] ~]# cat jieguo #!/bin/bashy=`sed -n 'p' a |wc -l`  #a 行数x=`sed -n 'p' b |wc -l`  #b行数for((i=1;i<=$y;i++)