private static const NUM_LOOPS:int = 15;

public function VectorTest():void
{

var vector:Vector.<int> = new Vector.<int>(1000000);
var array:Array = new Array(1000000);
var sTime:Number;

sTime = getTimer();
loopArray(array);
trace("Loop Array Avg (1) : " + ((getTimer() - sTime)));

sTime = getTimer();
loopVector(vector);
trace("Loop Vector Avg (1) : " + ((getTimer() - sTime)));

sTime = getTimer();
loopArray(array, false);
trace("Loop Array Avg (2) : " + ((getTimer() - sTime)));

sTime = getTimer();
loopVector(vector, false);
trace("Loop Vector Avg (2) : " + ((getTimer() - sTime)));

sTime = getTimer();
loopArray(array);
trace("Loop Array Avg (3) : " + ((getTimer() - sTime)));

sTime = getTimer();
loopVector(vector);
trace("Loop Vector Avg (3) : " + ((getTimer() - sTime)));

}

private function loopArray(a:Array, isRead:Boolean = true):void
{
var len:Number = a.length;

var n:int;
for (var i:int = 0; i < NUM_LOOPS; i++)
{
for (var k:int = 0; k < len; k++)
{
if (isRead)
n = a[k];
else
a[k] = 100;
}
}
}

private function loopVector(v:Vector.<int>, isRead:Boolean = true):void
{
var len:Number = v.length;

var n:int;
for (var i:int = 0; i < NUM_LOOPS; i++)
{
for (var k:int = 0; k < len; k++)
{
if (isRead)
n = v[k];
else
v[k] = 100;
}
}
}

上面的测试代码,大致输出如下:

Loop Array Avg (1) : 3074
Loop Vector Avg (1) : 1749
Loop Array Avg (2) : 1835
Loop Vector Avg (2) : 1635
Loop Array Avg (3) : 1675
Loop Vector Avg (3) : 1649

但如果把Loop Array Avg (1) Loop Vector Avg (1) 注释掉,结果会输出如下:

Loop Array Avg (2) : 1881
Loop Vector Avg (2) : 1641
Loop Array Avg (3) : 1794
Loop Vector Avg (3) : 1704

可见,array只是慢在写操作上(因为要自动扩容),如果写操作不除非自动扩容时,写操作的速度和vector其实是差不多的。

至于读操作,array和vector其实是差不多的

vector & array的更多相关文章

  1. Codeforces Global Round 6D(VECTOR<ARRAY<INT,3> >)

    一个人只要存在债务关系,那么他的债务可以和这整个债务关系网中任何人连边,和他当初借出或欠下的人没有关系.只需要记录他的债务值即可. #define HAVE_STRUCT_TIMESPEC #incl ...

  2. vector array and normal stanard array

    array 数组的长度固定 vector 自由存储区(栈),动态长度 普通标准数组相对较不安全,不方便; array,vector对象成员函数支持数组越界检测,同时代价是效率问题: array,普通标 ...

  3. 侯捷STL学习(七)--深度探索vector&&array

    layout: post title: 侯捷STL学习(七) date: 2017-06-13 tag: 侯捷STL --- 第十六节 深度探索vector vector源码剖析 vector内存2倍 ...

  4. Implementing a Dynamic Vector (Array) in C(使用c实现动态数组Vector)

    An array (vector) is a common-place data type, used to hold and describe a collection of elements. T ...

  5. C/C++基础----string, vector, array

    1 using声明 方便使用命名空间中的成员,不用每次xxx::yyy 头文件不应该包含using声明(不经意间包含了一些名字) 2 string 表3.1:初始化string对象的方式 string ...

  6. C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲

     使用C++风格的数组.不须要管理内存. array要注意不要溢出,由于它是栈上开辟内存. array适用于不论什么类型 #include<iostream> #include< ...

  7. vector以及array和数组

    //比较数组.vector.array #include <iostream> #include <vector> #include <array> #includ ...

  8. 【译】Rust中的array、vector和slice

    原文链接:https://hashrust.com/blog/arrays-vectors-and-slices-in-rust/ 原文标题:Arrays, vectors and slices in ...

  9. Java数组与vector互转

    Java数组与vector互转 /* Object[] object1 = null ; //数组定义 Vector<Object> object2;//Vector定义 object2 ...

随机推荐

  1. 正则表达式(RegExp)

    正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...

  2. Centos环境下部署游戏服务器-常用命令

         图1     在Linux的世界,如果你不玩命令,那你见了同行都不好意思和人家打招呼.同时服务器正常状况下放在远端,一般都是开ssh登录服务器,相信远程桌面的人很少见吧.这篇文章说说Linu ...

  3. Ubuntu安装取色软件

    sudo apt-get install Gpick

  4. 【Netty学习】Netty 4.0.x版本和Flex 4.6配合

    笔者的男装网店:http://shop101289731.taobao.com .冬装,在寒冷的冬季温暖你.新品上市,环境选购 =================================不华丽 ...

  5. wiremock之录制和回放

    Recording is done by starting the standalone runner like this: $ java -jar wiremock-1.50-standalone. ...

  6. HDU 4648 Magic Pen 6 思路

    官方题解: 题意转化一下就是: 给出一列数a[1]...a[n],求长度最长的一段连续的数,使得这些数的和能被M整除. 分析: 设这列数前i项和为s[i], 则一段连续的数的和 a[i]+a[i+1] ...

  7. 在Visual C++下搭建OpenGL的开发环境

    1.确保你的电脑已经安装了visual c++编译器 如果还没安装的话,这里有个安装包,可以复制链接进行下载:http://pan.baidu.com/s/1bn4XTqn   2.下载GLUT 下载 ...

  8. Android 代码监控apk安装,卸载,替换

    public class GetBroadcast extends BroadcastReceiver { private static GetBroadcast mReceiver = new Ge ...

  9. android-HttpClient上传信息(包括图片)到服务端

    需要下载apache公司下的HttpComponents项目下的HTTPCLIENT ----------地址为http://hc.apache.org/downloads.cgi 主要是用到了htt ...

  10. asp天猫自主发码的请求

    这几天在做天猫自主发码.实现了通知和核销部门.其他的部分待后续实现. 值得注意的是consume回调中,要加入sign_method=md5