C/C++
文章平均质量分 74
方寸之间
这个作者很懒,什么都没留下…
展开
-
排序算法汇总
1.冒泡排序2.选择排序3.插入排序4.交换排序5.归并排序6.快速排序7.希尔排序8.堆排序9.双向冒泡排序10.计数排序http://www.matrix67.com/blog/archives/166排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法 对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将 给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。 我将按照算法的复杂原创 2011-05-17 16:15:00 · 2736 阅读 · 2 评论 -
C++并发编程框架--并发运行时
并发运行时是 C++ 并发编程框架。并发运行时可简化并行编程,并帮助您编写可靠、可伸缩且具有响应能力的并行应用程序。并发运行时提高了抽象级别,因此您不必管理与并发相关的基础结构详细信息。利用并发运行时,还可以指定满足应用程序服务质量要求的计划策略。并发运行时为同时运行的应用程序和应用程序组件提供了一致性和可预见性。协作任务计划和协作阻止是并发运行时优点的两个示例。并发运行时使用协作任务计划原创 2014-06-21 20:23:37 · 5055 阅读 · 1 评论 -
算法题41 超大数据量遍历查找
1、一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对,如abc和cba 2、有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。请用5分钟时间,找出重复出现最多的前10条。 算法:建一个红黑树,比如STL中的map1,key为短信的hash值如MD5值,value为该短信出现的次数。同时维护一个另一个只有10个节点的map2,ke原创 2011-05-22 11:41:00 · 4683 阅读 · 0 评论 -
C++多线程技术--API
1. windows API相关常用的线程函数更多详见MSDN--Process and Thread Functions1.1. CreateThread CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤: 1)在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回 2)把线程退出码置为STILL_ACTIVE原创 2012-04-26 14:57:18 · 3160 阅读 · 0 评论 -
boost笔记:智能指针--概述
boost::scoped_ptrhttp://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/scoped_ptr.htm scoped_ptr用于确保能够正确地删除动态分配(new)的对象。scoped_ptr永远不能被复制或被赋值!因此scoped_ptr拥有它所指向的资源的所有权,并永远不会放弃这个所有权。scoped_ptr构造时即原创 2012-04-26 10:52:35 · 1735 阅读 · 0 评论 -
函数的调用约定(cdecl,stdcall,fastcall,...)
调用约定 调用约定阐释了程序中函数的调用方式。当一个调用约定形成,我们需要讨论的是被调用的函数是如何获取数据(例如参数),以及这些数据在堆栈中是如何存放的。对于逆向工程来说,深入了解调用约定是很有必要的。因为在逆向工程中会经常遇见不同的调用约定。而且,确定一个函数的调用约定在逆向工程中对于你理解函数也有比较好的帮助。 在我们讨论不同的调用约定之前,先了解一些基础的函数调用指令:CALL原创 2012-04-20 16:20:52 · 1627 阅读 · 0 评论 -
多线程应用---使用WaveOut* API开发AMR音频播放器(含源码下载)
[源代码以及工程实例下载 ]1、 语音播放API1.1 waveOutOpen - 打开播放设备MMRESULT waveOutOpen( LPHWAVEOUT phwo, /* 一个指向接收波形音频输出设备的句柄 */ UINT_PTR uDeviceID, /* 将要被打开的波形音频输出设备的原创 2012-03-22 22:54:58 · 3995 阅读 · 1 评论 -
#include的两种用法
#include "path-spec"#include path-spec>Syntax FormActionQuoted formThis form instructs the preprocessor to look for include files in the same directory of the file that co原创 2012-02-17 12:52:37 · 1089 阅读 · 0 评论 -
关于一个模块中所有rgs文件中有注册项无法全部写入注册表的问题
1、问题情形创建ATL项目时,使用VC每增加一个COM类,就会生成一个对应的rgs文件。在vista及win7系统中,如果增加了HKLM注册表项,而生成的程序并不是以管理员身份运行时,就会出现本该写入HKCU的某些注册表项并没有被写入。2、问题原因由于调用DllRegisterServer时,如果加载的rgs文件中的注册表项中的某一项写入注册表失败,后面的就不写入了。以下是AT原创 2012-02-22 10:54:28 · 2434 阅读 · 1 评论 -
算法题36 对称子字符串的最大长度
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。原创 2011-05-22 04:16:00 · 1691 阅读 · 0 评论 -
COM三大接口 -> IUnknown、IClassFactory、IDispatch
COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。 1、IUnknownCOM规范规定任何组件、任何接口都必须从IUnknown继承。IUnknown包含三个函数,分别是 QueryInterface、AddRef、Release。这三个函数是无比重要的,而且它们的排列顺序也是不可改变的。QueryInterface用于查询原创 2011-06-23 20:40:00 · 2552 阅读 · 0 评论 -
算法题27 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
算法:考虑使用首尾双指针p1, p2,建立存放从头遍历过程中的最大值max,以及从尾遍历过程中的最小值min。首指针从前往后遍历,尾指针从后往前遍历,(不能完全使二者同时滑动)。遍历结束时p1 == p2当p1 当p2 > min时,使p2--当p1>max且p2 p2时,需要修正,使p1 = p2.此种算法时间复杂度为O(n), 空间复杂度为常数。bool FindValue(int data[], int n, int& find){ int maxTemp = data[0], minTemp原创 2011-05-21 02:55:00 · 2919 阅读 · 4 评论 -
C++编译期的类型测试
编译期的类型测试一、使用模板特化机制如比较两个类型是否一致:VC8及以后版本支持了type traits机制:add_const Class // Makes const type from type.add_cv Class // Makes const/volatile type from type.原创 2014-06-21 20:34:21 · 2175 阅读 · 0 评论