C++基于范围的for循环性能测试(针对std::vector)
1、代码如下:
void output1(int x)
{
	if (x == 10000000)
	{
		std::cout << x << std::endl;
	}
}
const std::string getCurrentSystemTime()
{
	auto tt = std::chrono::system_clock::to_time_t
		(std::chrono::system_clock::now());
	struct tm* ptm = localtime(&tt);
	char date[60] = { 0 };
	sprintf(date, "%d-%02d-%02d      %02d:%02d:%02d",
		(int)ptm->tm_year + 1900, (int)ptm->tm_mon + 1, (int)ptm->tm_mday,
		(int)ptm->tm_hour, (int)ptm->tm_min, (int)ptm->tm_sec);
	return std::string(date);
}
void Test9()
{
	std::cout << getCurrentSystemTime() << std::endl;
	std::vector<int> coll;
	for (int i = 0; i <= 10000000; i++)
	{
		coll.push_back(i);
	}
	std::cout<<getCurrentSystemTime()<<std::endl;
	std::for_each(coll.begin(), coll.end(), output1);
	std::cout << getCurrentSystemTime() << std::endl;
	for (auto iter : coll)
	{
		if (iter == 10000000)
		{
			std::cout << iter << std::endl;
		}
	}
	std::cout << getCurrentSystemTime() << std::endl;
	for (auto iter = coll.begin(); iter != coll.end(); ++iter)
	{
		if (*iter == 10000000)
		{
			std::cout << *iter << std::endl;
		}
	}
	std::cout << getCurrentSystemTime() << std::endl;
for (auto iter = coll.begin(); iter != coll.end(); iter++)
	{
		if (*iter == 10000000)
		{
			std::cout << *iter << std::endl;
		}
	}
	std::cout << getCurrentSystemTime() << std::endl;
}
2、运行结果如下:
C++基于范围的for循环性能测试(针对std::vector)的更多相关文章
- C++11基于范围的for循环
		C++11包含一种新的 for 循环,称为基于范围的 for 循环,可以简化对数组元素的遍历.格式如下: for(Type VarName : Array){ //每个元素的值会依次赋给 VarNam ... 
- Atitit.升级软件的稳定性---基于数据库实现持久化  循环队列 循环队列
		Atitit.升级软件的稳定性---基于数据库实现持久化 循环队列 环形队列 1. 前言::选型(马) 1 2. 实现java.util.queue接口 1 3. 当前指针的2个实现方式 1 1.1 ... 
- C++ 11 学习2:空指针(nullptr) 和 基于范围的for循环(Range-based for loops)
		3.空指针(nullptr) 早在 1972 年,C语言诞生的初期,常数0带有常数及空指针的双重身分. C 使用 preprocessor macroNULL 表示空指针, 让 NULL 及 0 分别 ... 
- 基于范围的for循环(STL)
		1. ]={4.99,5.99,6.99,7.99,8.99}; for (double x : prices) cout<<x<<endl; //////////////// ... 
- 基于范围的for循环(C++11)
		C++11新增了一种循环:基于范围的for循环.这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作,如下例所示 for语句允许简单的范围迭代:(只遍历, ... 
- 第9课 基于范围的for循环
		1. 基于范围的for循环(range-based for) (1)语法:for(decl : coll){//statement} ①decl用于声明元素及类型,如int elem或auto ele ... 
- c++11 基于范围的for循环
		c++11 基于范围的for循环 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> # ... 
- c++11——基于范围的for循环
		c++11中有基于范围的for循环,基于范围的for循环可以不再关心迭代器的概念,只需要关系容器中的元素类型即可,同时也不必显式的给出容器的开头和结尾. int arr[] = {1, 2, 3, 4 ... 
- c++11之一: 基于范围的for循环
		#include <iostream> using namespace std; int main(){ ]{,,,,}; for (int& e: ary) e *= ; for ... 
随机推荐
- Spring学习笔记3——消息队列(rabbitmq), 发送邮件
			本节的内容是用户注册时,将邮箱地址先存入rabbitmq队列,之后返回给用户注册成功:之后消息队列的接收者从队列中获取消息,发送邮件给用户. 一.RabbitMQ介绍 如果之前对rabbitm ... 
- IOS渗透测试第一步-基础知识统一放送
			原文: http://www.websecgeeks.com/2017/04/ios-application-pentesting-part-3.html http://www.websecgeeks ... 
- npm 包 升降版本
			今天用vue-awesome-swiper最新版本遇到些问题,需要调整到2.6.7版本.记录以下. 查看vue-awesome-swiper版本 npm list vue-awesome-swiper ... 
- Swift5 语言参考(四) 表达式
			在Swift中,有四种表达式:前缀表达式,二进制表达式,主表达式和后缀表达式.评估表达式会返回一个值,导致副作用,或两者兼而有之. 前缀和二进制表达式允许您将运算符应用于较小的表达式.主要表达式在概念 ... 
- WebRTC开发基础(WebRTC入门系列2:RTCPeerConnection)
			RTCPeerConnection的作用是在浏览器之间建立数据的“点对点”(peer to peer)通信. 使用WebRTC的编解码器和协议做了大量的工作,方便了开发者,使实时通信成为可能,甚至在不 ... 
- LaTeX技巧:如何高效地将LaTeX代码转为Word公式
			LaTeX转换为word这么刺激的做法是很多国内用户咨询的问题,有些用户只得把LaTeX排版好的转换为word,这里给大家推荐几个用法,或许能够帮助到诸位. 第一种方法:MathType的Toggle ... 
- Scanner的概述与String类的构造和使用_DAY12
			1:Scanner的概述(理解) 1)Scanner是JDK5以后出现的方便我们从键盘接受数据的类. 2)Scanner的构造格式: Scanner sc = new Scanner(System.i ... 
- npm 安装 cannot find module
			window7安装module出现 Connot find module 'xxx' 解决办法: 添加环境变量命名为:NODE_PATH 设置值为:%AppData%\npm\node_modules ... 
- Android使用Xutil3.0下载文件.md
			Android使用Xutil3.0下载文件.md 新建项目: 引入依赖: implementation 'org.xutils:xutils:3.5.0' 添加权限: <uses-permiss ... 
- JS 中 if / if...else...替换方式
			说说烂大街的if/if...else...,程序中用得最多的流程判断语句. 对着曾经满屏的if/if...else...,心想能不能搞点事情,折腾点浪花浪里呀浪. 对顶着"这个需求很简单,怎 ... 
