memset, fill 对bool,int 赋值的效率
memset对bool型变量赋false比对int型变量赋0快了10倍
fill对bool型变量赋false和对int型变量赋0效率一样
fill对int型变量赋0比memset对int型变量赋0慢了10倍
归结来说,以后要赋变量false的初值时,应该用bool型变量,用memset赋
- #include <cstdio>
- #include <cstring>
- #include <ctime>
- #include <algorithm>
- using namespace std;
- int d[];
- bool d2[];
- int has_train[][][];
- bool has_train2[][][];
- int main()
- {
- clock_t start, finish;
- start = clock();
- int k = ;
- while(k--)
- {
- memset(d, , sizeof(d));
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- memset(d2, false, sizeof(d2));
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- memset(has_train, , sizeof(has_train));
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- memset(has_train2, false, sizeof(has_train2));
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- fill(d, d+, );
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- fill(d2, d2+, false);
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- fill(has_train[][], has_train[][]+, );
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- start = clock();
- k = ;
- while(k--)
- {
- fill(has_train2[][], has_train2[][]+, false);
- }
- finish = clock();
- printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
- return ;
- }
//最后我尝试了直接对int型和bool型数组赋值而不使用memset和fill,发现效率和memset对int 型数组赋值0效率是一样的。
memset, fill 对bool,int 赋值的效率的更多相关文章
- 速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array
[源码下载] 速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array 作者:webabcd 介绍速战速决 之 PHP 数据类型 boo ...
- swift 之嵌套的理解 func chooseStepFunction(backwards: Bool) -> (Int) -> Int
http://blog.csdn.net/lzx_322/article/details/28861199 swift 函数使用前面需要添加 func 有返回值需要使用-> 后面添加返回类型 , ...
- 数组初始化 memset fill
#include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #in ...
- C语言补漏(1)--- char到int赋值的一个陷阱
作为一个C的新手(虽然学的第一门语言就是C,可是用C实际开发项目却是最近的事情),对使用C过程中遇到的各类问题.疑惑.知识漏洞进行弥补无疑是非常有必要的,于是决定将每次遇到的知识漏洞写到博客上. 今天 ...
- Integer 与int 赋值比较
测试代码: @Test public void IntegerTest() { Integer i01 = 59; int i02 = 59; Integer i03 = Integer.valueO ...
- bool? int?等可为空的数值类型的运算 三值逻辑
算术运算:(+,-,*,/)时,只要一个为null,则结果为null. 比较运算符: <.>.<= 和 >=,也是如此.如果一个或全部两个操作数都为 null,则结果为 fal ...
- Python3基础 bool类型变量赋值
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 区间重合判断(pojg校门外的树)
pojg:http://poj.grids.cn/practice/2808 解法1:以空间换时间: #include<stdio.h> #include<string.h> ...
- 【NX二次开发】NX内部函数,libufunx.dll文件中的内部函数
本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void e ...
随机推荐
- Codeforces 948 数论推导 融雪前缀和二分check 01字典树带删除
A. 全部空的放狗 B. 先O(NLOGNLOGN)处理出一个合数质因数中最大的质数是多少 因为p1 x1 x2的关系是 x2是p在x1之上的最小倍数 所以x1的范围是[x2-p+1,x2-1]要使最 ...
- 我用过的gitlab api
1.新增tag https://docs.gitlab.com/ee/api/tags.html#list-project-repository-tags 2.获取指定项目合分支的最新一次merge ...
- C#基础知识之Dynamic类型
Dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理. 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静态化类型的语言,而Py ...
- JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别
1.-Xms:表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配.2.-Xmx:表示java虚拟机堆区内存可被分配的最大上限,通常为操作 ...
- 2.k8s资源清单
一.常见资源对象 常见的资源对象:(包括但不仅限于) l Workload: Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob ...
- 一、创建并打包Cordova的App工程
1.创建ionic4 & Angular项目 ionic start myApp tabs --type=angular 2.添加ios和android平台 ionic cordova pre ...
- springboot自定义错误页
静态错误页放在 动态可以放在freemaker或者thymeleaf 匹配规则: 先找动态页面再找静态页面 先找精确错误页面再找模糊页面 注:精确错误页面=50 ...
- Spring Boot文件上传
一.创建一个简单的包含WEB依赖的SpringBoot项目 二.配置文件上传的文件大小限制 # 上传文件总的最大值spring.servlet.multipart.max-request-size=1 ...
- monit-日志监控工具
前段时间,CTO下达了一个brief,需要搭建monit日志监控应用,匹配日志中的异常信息,自动发送邮件/微信告警.具体的要求如下: 1.监控***项目的各个应用,nginx的日志,匹配到错误时发送告 ...
- POJ 1432 Decoding Morse Sequences (DP)
Decoding Morse Sequences 题目链接: http://acm.hust.edu.cn/vjudge/contest/129783#problem/D Description Be ...