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 赋值的效率的更多相关文章

  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. 【Thinkphp5】解决模板输出时间戳自动转换为时间格式的问题

    背景: 数据库存储时间为时间戳,格式为varchar,模板输出时未进行时间格式化却输出了时间格式 如下图 (数据库存储的时间戳) (页面输出的时间) (未进行格式化的时间代码) (格式化后的时间代码) ...

  2. CentOS6.4运维知识点1

    系统的基础优化 1. 修改yum源(CentOS6.4 Mini) wget http://mirrors.163.com/.help/CentOS6-Base-163.repo cd /etc/yu ...

  3. 二分图最大匹配(匈牙利算法)简介& Example hdu 1150 Machine Schedule

    二分图匹配(匈牙利算法) 1.一个二分图中的最大匹配数等于这个图中的最小点覆盖数 König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数.如果你还不知 ...

  4. UVa11806 Cheerleaders(容斥原理)

    11806 - Cheerleaders Time limit: 2.000 seconds C Cheerleaders In most professional sporting events, ...

  5. Codeforces 934 最长不递减子序列 多项式系数推导

    A B C 给你一个长度为N的01串 你可以翻转一次任意[L,R]的区间 问你最长的不递减序列为多少长 处理出1的前缀和 和2的后缀和 然后N^2 DP 处理出 [L,R]区间的最长不递增序列 #in ...

  6. 下载放在resource下面的excel文件

    1.将excel文件放项目resources目录下 2.打包的时候排除指定后缀文件,否则打包时会出现文件损坏的情况 <configuration> <encoding>UTF- ...

  7. CSS居中完全指南——构建CSS居中决策树

    CSS居中完全指南--构建CSS居中决策树 本文总结CSS居中,包括水平居中和垂直居中.本文相当于CSS决策树,下次再遇到CSS居中问题时有章可循. 参考Centering in CSS: A Com ...

  8. layui下拉框右边图标动画,不要动画

    /* 取消动画 / .layui-form-selected .layui-edge { margin-top: -3px; -webkit-transform: rotate(0deg); tran ...

  9. SQL server int 转char类型

    CONVERT(CHAR,c.battery_board_id) CONVERT(VARCHAR,c.battery_board_id)

  10. php shuffle()函数 语法

    php shuffle()函数 语法 作用:把数组中的元素按随机顺序重新排序:富瑞华 语法:shuffle(array) 参数: 参数 描述 array 必需.规定要使用的数组. 说明:若成功则返回 ...