vector容器,使用迭代器和使用下标直接引用的效率有什么不同?

sanss2012 sanss2012 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#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的方法,需要的朋友可以参考下

weixin_38616330

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;

weixin_38697444

C++中vector容器使用详细说明

在c++中,vector是一个十分有用的容器,下面通过本文给大家介绍C++中vector容器使用详细说明,需要的朋友可以参考下

weixin_38721405

c++之vector容器erase操作

c++之vector容器erase操作,在容器列表中删除中间一行的操作过程,代码分为一维容器和二维容器操作两部分,详细见代码

minggto

C++中vector容器的常用操作方法实例总结

vector容器一般被用作创建动态数组,动态数组就像Python中的list结构一样,可以比普通数组拥有更丰富操作方法,下面就为大家整理了一些最常用的操作:

weixin_38556737
评论 17
收藏 已收藏
分享
返回顶部
sanss2012
C++ 语言 65,214 成员 250,514 内容