vector容器,使用迭代器和使用下标直接引用的效率有什么不同?
#include <vector>
#include <ctime>
#include <iostream>
using namespace std;
void main()
{
vector<int> arrar(1000000, 2);
clock_t sT1 = clock();
for (size_t i=0; i<arrar.size(); i++)
{
arrar[i]++;
}
clock_t eT1 = clock();
cout << eT1-sT1 << endl;
clock_t sT2 = clock();
for (vector<int>::iterator p=arrar.begin(); p!=arrar.end(); p++)
{
*p++;
}
clock_t eT2 = clock();
cout << eT2-sT2 << endl;
}最后运行的结果是:第二种的速度比第一种慢了十倍以上!
请问两种方式有什么区别呢?迭代器的效率为什么这么低下啊。。相比下标引用方式还有什么优点呢。。
...全文
相关推荐
详解C++中的vector容器及用迭代器访问vector的方法
使用迭代器iterator可以更方便地解引用和访问成员,当然也包括vector中的元素,本文就来详解C++中的vector容器及用迭代器访问vector的方法,需要的朋友可以参考下
C++(STL库)之顺序容器vector的使用
一、特点 ①总的来说:可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 ②元素保存在连续的内存空间中,因此通过下标取值非常快 ③在容器中间位置添加或删除元素非常耗时 ④一旦内从重分配,和原vector相关的指针,引用,迭代器都失效。内存重分配耗时很长 二、头文件、using声明 头文件:#include <vector> using声明:using std::vector; 三、初始化 vector<T> v1; ==>v1是一个空的vector vector<T> v2(v1); ===>v2是v1的副本,拷贝构造 vector<T> v2=v1;
C++中vector容器使用详细说明
在c++中,vector是一个十分有用的容器,下面通过本文给大家介绍C++中vector容器使用详细说明,需要的朋友可以参考下
c++之vector容器erase操作
c++之vector容器erase操作,在容器列表中删除中间一行的操作过程,代码分为一维容器和二维容器操作两部分,详细见代码
C++中vector容器的常用操作方法实例总结
vector容器一般被用作创建动态数组,动态数组就像Python中的list结构一样,可以比普通数组拥有更丰富操作方法,下面就为大家整理了一些最常用的操作:


