Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > stl sort和qsort的比较
【标  题】:stl sort和qsort的比较
【关键字】:stl,sort,qsort
【来  源】:http://blog.csdn.net/Flying_Colors/archive/2006/03/31/646484.aspx

stl sort和qsort的比较

Your Ad Here

实验结果:

stl sort cost 18.75 seconds
c qsort cost 42 seconds

分析:
当然是因为qsort使用回调函数.

源代码(标准c/c++):
//use stl
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;

//use c qsort
#include <cstdlib>

//clock
#include <ctime>

struct mytype{
int key;
int data;
};

struct mygen{
//typedef
mytype operator() (void) const {
mytype v;
v.key=rand();
return v;
}
};

struct stl_cmp:public binary_function<mytype,mytype,bool>{
bool operator() (const mytype& e1,const mytype& e2) const { return e1.key<e2.
key; }
};

static int qsort_cmp(const void* e1,const void* e2)
{
return (*(mytype*)e1).key-(*(mytype*)e2).key;
}

mytype a[10000000];


int main(int argc, char* argv[])
{
//stl sort
clock_t t;

generate(a, a+sizeof(a)/sizeof(a[0]), mygen());
t=clock();
sort(a,a+sizeof(a)/sizeof(a[0]),stl_cmp());
t=clock()-t;
cout<<"stl sort cost "<<t*1.0/CLK_TCK<<" seconds"<<endl;

//c qsort
generate(a, a+sizeof(a)/sizeof(a[0]), mygen());
t=clock();
qsort((void*)a,sizeof(a)/sizeof(a[0]),sizeof(a[0]),qsort_cmp);
t=clock()-t;
cout<<"c qsort cost "<<t*1.0/CLK_TCK<<" seconds"<<endl;

return 0;
}

语言:【上一篇】
设置PSPad调用devcpp中的mingw Gcc进行编译;另附PSPad中文版一个BUG的解决方法:【下一篇】
【相关文章】
  • Castle ActiveRecord学习实践(1):快速入门指南
  • C++ 标准模板库(STL)编程示例 - map
  • C++ 标准模板库(STL)编程示例 - multimap
  • java sorting
  • STL框架
  • STL学习
  • 《STL源码剖析》笔记--vector实际应用中的改进
  • STL函数对象
  • 自己实现的Vector,接口与STL一致 文件名: Vector.h
  • 自己实现的Vector,接口与STL一致 文件名: Vector.hpp
  • 【随机文章】
  • Windows 2000 的几个实用技巧
  • ASP动网论坛漏洞分析
  • [企业管理]从《亮剑》看团队建设之五——关于战场上的死亡与逃兵想到的胶冻团队组织的管理心理
  • 戏说OO思想
  • 恢复体力的时候开始想念
  • 在SQL Server 2005中查询表结构及索引
  • 在php中执行root命令(原创)
  • 端口说明和扫描顺序
  • 如何阅读源代码 二
  • 真正的初学者常用命令
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.