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 ...
随机推荐
- 判断用户输入YES或NO
#!bin/bash#作者:liusingbon#功能:判断用户输入的是 Yes 或 NOread -p "Are you sure?[y/n]:" surecase $sure ...
- 四、ARM 异常处理
4.1 模式与异常 当正常程序流程被暂时停止发生异常,例如响应一个来自外设的中断.在处理异常前,必须保护当前的处理器状态,以便在完成处理程序后能恢复到原来的程序 . 异常的类型: Reset unde ...
- linux tomcat 中文文件上传乱码
找到tomcat文件夹下的conf/server.xml,在connector节点下新增URIEncoding="utf-8"参数 <Connector connection ...
- 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\......”--“拒绝访问。 ”错误
1.通常的解决方法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下: C:\Windows\temp-->属性-->安全-->编辑-->添加NETWORK S ...
- 【leetcode】560. Subarray Sum Equals K
题目如下:解题思路:本题的关键在于题目限定了是连续的数组,我们用一个dp数组保存第i位到数组末位的和.例如nums = [1,1,1],那么dp = [3,2,1], dp[i]表示nums[i]+n ...
- 如何在MySQL中使用explain查询SQL的执行计划?
1.什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解. MySQL本身的功能架构分为三个部分,分别是 应用层.逻辑层.物理层,不只是MyS ...
- mysql CHECK约束 语法
mysql CHECK约束 语法 作用:CHECK 约束用于限制列中的值的范围. 直线电机 说明:如果对单个列定义 CHECK 约束,那么该列只允许特定的值.如果对一个表定义 CHECK 约束,那么此 ...
- OpenCV feature2d
/*M/////////////////////////////////////////////////////////////////////////////////////// // // IMP ...
- PC端无论页面有没有完全撑开把footer保持在最底部(不用定位)
最近在写项目,有的页面没有占到一屏,然后footer也就是底部就靠上了,这样很影响美观,于是在网上找了找,下面是我的成果 解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可 ...
- 高通Camera bring up软件流程【转】
本文转载自:http://blog.csdn.net/liwei16611/article/details/51279658 高通camera bring up分为两种类型:YUV和bayerbrin ...