0%

对于秒/毫秒级计时,我们可以使用其自带库函数。在头文件time.h中,clock() 函数返回从 开启这个程序进程 到 程序中调用clock()函数 时之间的CPU时钟计时单元数,返回单位是毫秒。另外,系统还定义了一个符号常量CLOCKS_PER_SEC。该常量等于每秒钟包括的系统时间单位数。因此,除以这个单位数,就可以得到秒数。time.h中将clock_t作为clock()作为clock()返回类型的别名。

对于微秒级计时,我们可以使用windows.h中的库函数QueryPerformanceCounter()。这个函数返回高精确度性能计数器的值,它可以以微妙为单位计时。由于该函数的精确计时的最小单位是与系统有关的,所以我们必须使用QueryPerformanceFrequency() 查询系统以得到QueryPerformanceCounter()返回的嘀哒声的频率,即返回每秒嘀哒声的个数。

阅读全文 »

插入排序法的时间复杂度为n的平方,对于较小的输入规模来说,插入排序法比合并排序法更快些。在最佳情况下,即输入数组已经排序好,则时间复杂度可表示为n,是一个线性函数;在最差情况下,即输入数组是逆序排列时,时间复杂度为 $an^2+bn+c$. 插入排序法的具体实现方法如下:

阅读全文 »

为成为国际语言,C++必须能处理需要16位的国际字符集Unicode,于是在传统的8位char型的基础上添加了wchar_t字符类型。在程序包含iostream文件时,将自动创建8个流对象:cin、cout、cerr、clog以及相对应的用于宽字符流的:wcin、wcout、wcerr、wclog。

阅读全文 »

在上篇文章《内存对齐》中说到了内存问题,今天我也遇到了可以用内存映射来解释的问题: 数组越界访问,出现死循环。

阅读全文 »

在了解内存对齐方式前,先介绍计算机的存储方式:Big Endian与Little Endian:

  • Big Endian: 即数据的高位在低地址,地位在高地址,并且把最高字节的地址作为变量的首地址
  • Little Endian: 即数据的高位在高地址,数据的低位在低地址,并且把最低字节的地址作为变量首地址。

    阅读全文 »

  1. 匈牙利命名法
    通过在变量名之前增加小写字母的符号前缀,以标识变量的属性、类型、作用域等参数。简单地说,即“变量名=属性+类型+对象描述”的形式。
    示例:m_lpszStr,表示指向以 0 字符结尾的字符串的长指针成员变量
  2. 骆驼命名法
    也叫驼峰式大小写。其主要规范为,混合使用大小写字母来构造变量名或函数名。
    示例:printEmployeePaychecks(),如代码所示,函数的每一个逻辑断点均用大写字母标识
  3. 帕斯卡命名法
    与骆驼命名法类似,骆驼命名法是首字母小写,而帕斯卡命名法则需要首字母大写。源自 Pascal 语言的命名惯例,也称为大驼峰式命名法。
    示例:LoginCheck(),string UserName
阅读全文 »

c++中头文件为 ,c中则是

这些函数以一个数值或者字符作为参数并返回布尔值true或flase,或者是字符,具体因函数不同

这里面的函数可以分为两类:

阅读全文 »

编程时经常要使用ASCII字符集,所以专门放在这里,以便日后查看:

阅读全文 »

标准C基本数据类型:int char long short float double void以及它们与signed、unsigned的组合。标准C++增加了bool型和wchar_t型,在32位操作系统上,它们的长度如下表:

阅读全文 »

注册csdn已经有一年多了,从来也没有进这个论坛看看,当初也只是因为要下载资料而注册的。现在决定转战到这里,一是因为QQ号前不久被盗,一些资料幸好没丢,于是想来将一些个人的文档、程序保存在这里;二是因为csdn中国最大的程序员论坛,想向一些大牛请教请教,毕竟QQ空间的技术大牛并不多,也极少有人会将技术贴发在QQ空间。

阅读全文 »