谁来解答下!!memset,for,while,fill()初始化数组的效率对比...

这篇博客探讨了在C++中使用memset、for循环、while循环和fill()初始化数组的效率问题。实验结果显示memset通常最快,fill()最慢,且对于不同数据类型,memset的优势更为明显。博主通过源码分析认为,fill()对多字节类型使用for循环,而memset适用于字节类型,这可能是memset表现更好的原因。
摘要由CSDN通过智能技术生成

         我的多次结果还是memset最快,但网上有说for()循环初始化数组比memset快的(在int下),因为memset每次只能操作一个字节。不知道大家测出来结果如何或这是我的测试程序原理错了?

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <ctime>
  4. using namespace std;
  5. const int n=10000000;
  6. template<class T>
  7. class TEST{
  8. private:
  9.     long out,a1,b1,c1,d1;
  10.     T *a,*b,*c,*d;
  11.     void test_unity(const T &x,const T &y){ //memset的赋值有点特殊,所以单独设置变量x
  12.         clock_t start, finish;
  13.         //a.for memset
  14.         start = clock();
  15.         memset(a,x,sizeof(T)*n);
  16.         finish = cl
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值