memset对bool型变量赋false比对int型变量赋0快了10倍

fill对bool型变量赋false和对int型变量赋0效率一样

fill对int型变量赋0比memset对int型变量赋0慢了10倍

归结来说,以后要赋变量false的初值时,应该用bool型变量,用memset赋

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <ctime>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. int d[];
  8. bool d2[];
  9. int has_train[][][];
  10. bool has_train2[][][];
  11.  
  12. int main()
  13. {
  14. clock_t start, finish;
  15. start = clock();
  16. int k = ;
  17. while(k--)
  18. {
  19. memset(d, , sizeof(d));
  20. }
  21. finish = clock();
  22. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  23. start = clock();
  24. k = ;
  25. while(k--)
  26. {
  27. memset(d2, false, sizeof(d2));
  28. }
  29. finish = clock();
  30. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  31. start = clock();
  32. k = ;
  33. while(k--)
  34. {
  35. memset(has_train, , sizeof(has_train));
  36. }
  37. finish = clock();
  38. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  39. start = clock();
  40. k = ;
  41. while(k--)
  42. {
  43. memset(has_train2, false, sizeof(has_train2));
  44. }
  45. finish = clock();
  46. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  47.  
  48. start = clock();
  49. k = ;
  50. while(k--)
  51. {
  52. fill(d, d+, );
  53. }
  54. finish = clock();
  55. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  56. start = clock();
  57. k = ;
  58. while(k--)
  59. {
  60. fill(d2, d2+, false);
  61. }
  62. finish = clock();
  63. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  64. start = clock();
  65. k = ;
  66. while(k--)
  67. {
  68. fill(has_train[][], has_train[][]+, );
  69. }
  70. finish = clock();
  71. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  72. start = clock();
  73. k = ;
  74. while(k--)
  75. {
  76. fill(has_train2[][], has_train2[][]+, false);
  77. }
  78. finish = clock();
  79. printf("%f\n", (double)(finish - start) / CLOCKS_PER_SEC);
  80. return ;
  81. }

//最后我尝试了直接对int型和bool型数组赋值而不使用memset和fill,发现效率和memset对int 型数组赋值0效率是一样的。

memset, fill 对bool,int 赋值的效率的更多相关文章

  1. 速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array

    [源码下载] 速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array 作者:webabcd 介绍速战速决 之 PHP 数据类型 boo ...

  2. swift 之嵌套的理解 func chooseStepFunction(backwards: Bool) -> (Int) -> Int

    http://blog.csdn.net/lzx_322/article/details/28861199 swift 函数使用前面需要添加 func 有返回值需要使用-> 后面添加返回类型 , ...

  3. 数组初始化 memset fill

    #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #in ...

  4. C语言补漏(1)--- char到int赋值的一个陷阱

    作为一个C的新手(虽然学的第一门语言就是C,可是用C实际开发项目却是最近的事情),对使用C过程中遇到的各类问题.疑惑.知识漏洞进行弥补无疑是非常有必要的,于是决定将每次遇到的知识漏洞写到博客上. 今天 ...

  5. Integer 与int 赋值比较

    测试代码: @Test public void IntegerTest() { Integer i01 = 59; int i02 = 59; Integer i03 = Integer.valueO ...

  6. bool? int?等可为空的数值类型的运算 三值逻辑

    算术运算:(+,-,*,/)时,只要一个为null,则结果为null. 比较运算符: <.>.<= 和 >=,也是如此.如果一个或全部两个操作数都为 null,则结果为 fal ...

  7. Python3基础 bool类型变量赋值

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. 区间重合判断(pojg校门外的树)

    pojg:http://poj.grids.cn/practice/2808 解法1:以空间换时间: #include<stdio.h> #include<string.h> ...

  9. 【NX二次开发】NX内部函数,libufunx.dll文件中的内部函数

    本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void e ...

随机推荐

  1. Codeforces 948 数论推导 融雪前缀和二分check 01字典树带删除

    A. 全部空的放狗 B. 先O(NLOGNLOGN)处理出一个合数质因数中最大的质数是多少 因为p1 x1 x2的关系是 x2是p在x1之上的最小倍数 所以x1的范围是[x2-p+1,x2-1]要使最 ...

  2. 我用过的gitlab api

    1.新增tag https://docs.gitlab.com/ee/api/tags.html#list-project-repository-tags 2.获取指定项目合分支的最新一次merge ...

  3. C#基础知识之Dynamic类型

    Dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理. 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静态化类型的语言,而Py ...

  4. JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别

    1.-Xms:表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配.2.-Xmx:表示java虚拟机堆区内存可被分配的最大上限,通常为操作 ...

  5. 2.k8s资源清单

    一.常见资源对象 常见的资源对象:(包括但不仅限于) l  Workload: Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob ...

  6. 一、创建并打包Cordova的App工程

    1.创建ionic4 & Angular项目 ionic start myApp tabs --type=angular 2.添加ios和android平台 ionic cordova pre ...

  7. springboot自定义错误页

    静态错误页放在         动态可以放在freemaker或者thymeleaf         匹配规则: 先找动态页面再找静态页面 先找精确错误页面再找模糊页面     注:精确错误页面=50 ...

  8. Spring Boot文件上传

    一.创建一个简单的包含WEB依赖的SpringBoot项目 二.配置文件上传的文件大小限制 # 上传文件总的最大值spring.servlet.multipart.max-request-size=1 ...

  9. monit-日志监控工具

    前段时间,CTO下达了一个brief,需要搭建monit日志监控应用,匹配日志中的异常信息,自动发送邮件/微信告警.具体的要求如下: 1.监控***项目的各个应用,nginx的日志,匹配到错误时发送告 ...

  10. POJ 1432 Decoding Morse Sequences (DP)

    Decoding Morse Sequences 题目链接: http://acm.hust.edu.cn/vjudge/contest/129783#problem/D Description Be ...