
c/c++
文章平均质量分 56
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
只用位运算交换两个数
异或运算:相同为0,不同为1 a = a^b; b = a^b; a = a^b;转载 2014-03-15 10:27:20 · 704 阅读 · 0 评论 -
创建模式之抽象工厂Abstract Factory
此模式相对比较简单,是简单的原创 2014-06-12 15:15:04 · 286 阅读 · 0 评论 -
提高编程能力的7条建议
编程是非常酷的一件事情,但是在酷炫的背后它对很多人来说还是挺难的。很多人在学习编程之初就被困难击败了。 当你不熟悉编程的时候,你可能会觉得无从下手,并且不知道如何运用学到的知识。只要你通过了这一困难的学习阶段,你就会发现一个全新的世界。 以下是一些能够帮助你快速提高编程技巧的建议。 1. 多写代码 学习某件事情最好的办法就是练习。你应该花大量时间转载 2014-05-29 13:31:40 · 589 阅读 · 0 评论 -
设计模式总结之行为模式总览
行为模式设计到两个方面的内容: 类之间的关系和duixi原创 2014-05-30 10:41:52 · 302 阅读 · 0 评论 -
创建模式之生成器BUILDER
先看结构图:原创 2014-06-12 15:56:43 · 302 阅读 · 0 评论 -
行为模式之命令模式-COMMAND
稍后继续原创 2014-05-31 12:10:52 · 273 阅读 · 0 评论 -
行为模式之观察者-OBSERVER
本文参考书籍:《Design Patterns Elements of Reusable Obje原创 2014-05-30 12:57:56 · 339 阅读 · 0 评论 -
行为模式之职责链-CHAIN OF RESPONSBILITY
应用原创 2014-05-30 23:07:42 · 304 阅读 · 0 评论 -
timer.hpp
class timer { public: timer() { _start_time = std::clock(); } // postcondition: elapsed()==0 // timer( const timer& src ); // post: elapsed()==src.elapsed() // ~time原创 2014-09-02 14:22:34 · 342 阅读 · 0 评论 -
C++ 异常
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。 二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这转载 2014-12-08 14:29:39 · 675 阅读 · 0 评论 -
GUID生成
windows下使用微软guidgen.exe //--生成GUID的代码 //--相关程序/微软guidgen.exe #include "stdafx.h" #include #include //--生成GUID const char* newGUID() { static char buf[64] = {0}; GUID guid; if (S_OK == ::CoCrea转载 2014-12-29 13:54:16 · 547 阅读 · 0 评论 -
strncpy_s、_strncpy_s_l、wcsncpy_s、_wcsncpy_s_l、_mbsncpy_s、_mbsncpy_s_l
将一个字符串的字符复制给另一个。strncpy、_strncpy_l、wcsncpy、_wcsncpy_l、_mbsncpy、_mbsncpy_l 的这些版本如 CRT 中的安全功能 所述,其安全得到了增强。 重要事项 _mbsncpy_s 和 _mbsncpy_s_l 不能在 Windows 运行时中执行的应用程序中使用。 有关详细信息,请参见 CR转载 2014-12-12 17:43:29 · 3636 阅读 · 0 评论 -
C++ 中wchar_t范围来判断其是否是中文,数字还是其他
下面是各语言在Unicode中的范围: 0000:Basic Latin 基本拉丁语 0080:Latin-1 Supplement 拉丁语-1补遗 0100:Latin Extended-A 拉丁语扩充-A 0180:Latin Extended-B 拉丁语扩充-B 0250:IPA Extensions 国际音标 02B0:Spacing Modifier Letter原创 2015-03-11 11:20:28 · 3867 阅读 · 0 评论 -
设计模式之创建型:抽象工厂和生成器的混合使用
#pragma once #include #include namespace MazeSite { //==================================================================================================================== /// /// 方向, 依次是: 北,原创 2014-06-12 11:37:57 · 351 阅读 · 0 评论 -
设计模式中的委托形式
委托():是一种组合方式原创 2014-06-12 17:55:29 · 411 阅读 · 0 评论 -
c++关键字之 const
1. 最初的用途: 代替预编译指令 #define,可以缩小程序size,从而节省载入到内存运行时的内存开销。 举例:(网上的例子多半都是CV党,不懂的人看了会更加不懂,更怕C++)百度百科给的例子就是错的,或者说不恰当的,解释的方法不对。 比如: /--------------------------------------------------------define--------转载 2014-05-13 10:19:55 · 537 阅读 · 0 评论 -
获取系统的时钟数
__declspec (naked) unsigned __int64 GetCpuCycle( void ) { _asm { rdtsc ret } }原创 2014-05-13 09:59:29 · 1021 阅读 · 0 评论 -
declspec(naked) 编写干净函数
void __declspec(naked) MyNakedFunction() { strcmp(...); // __cdecl 函数是调用者清除参数堆栈,对于非内联汇编调用这类函数,编译器将自动平衡堆栈,加入 ADD ESP, 8 }转载 2014-05-13 09:50:10 · 753 阅读 · 0 评论 -
解决VS2010升级SP1后出现的warning C4005问题
一些程序在使用VS2010时编译一切正常,前几天升级了VS2010的SP1,结果发现原先正常的程序报错了,错误信息如下: 3>c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdint.h(76): warning C4005: 'INT8_MAX' : macro redefinition 3>转载 2014-03-28 10:03:37 · 1248 阅读 · 0 评论 -
windows下的_mkdir 和 linux下的mkdir
需要注意的是 windows下的_mkdir()只需要一个路径的参数,而linux下的mkdir()需要两个参数,第一个是路径,第二个是权限。以下是linux下的mkdir的讲解: NAME mkdir - make a directory SYNOPSIS #include sys/stat.h> int mkdir(const char *path, mode_t转载 2014-05-13 15:55:25 · 7053 阅读 · 0 评论 -
c++钻石-菱形继承
在C++中,什么叫做钻石问题(也可以叫菱形继承问题),怎么避免它? 下面的图表可以用来解释钻石问题。 假设我们有类B和类C,它们都继承了相同的类A。另外我们还有类D,类D通过多重继承机制继承了类B和类C。因为上述图表的形状类似于钻石(或者菱形),因此这个问题被形象地称为钻石问题(菱形继承问题)。现在,我们将上面的图转载 2014-05-22 20:11:10 · 965 阅读 · 0 评论 -
Unix/Linux编程日期时间汇编
Unix/Linux 时间类型 Unix/Linux下有以下几种时间结构: 1、time_t 类型:长整型,一般用来表示从1970-01-01 00:00:00时以来的秒数,精确度:秒;由函数time()获取; 该类型定义在头文件 /usr/include/sys/time.h 中: #define _TIME_T typedef long ti转载 2014-05-22 20:15:40 · 529 阅读 · 0 评论 -
使用VS从DLL中产生LIB文件
Generate a .lib from a DLL with visual studio翻译 2014-05-23 09:09:43 · 741 阅读 · 0 评论 -
Windows下日期时间编程简单总结
Windows下日期时间编程简单总结转载 2014-05-22 20:14:27 · 608 阅读 · 0 评论 -
C\C++代码优化的27个建议
本文由 伯乐在线 - 周昌鸿 翻译自 cs.clemson.edu。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 1. 记住阿姆达尔定律: funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经转载 2014-05-26 10:24:42 · 709 阅读 · 0 评论 -
最丑陋的C语言特性:tgmath.h
是一个在C99引入的,标准C语言库提供的头文件。对于Fortran编写的数值软件,它向C语言提供更加简洁的接口。 跟C语言不同,Fortran提供了编写在该语言内部的“固有函数”,其表现得更像操作符一样。固有函数接受不同类型的参数,并根据参数的类型返回对应类型的返回值。同时,Fortran中的普通函数(“外部函数”)的行为跟C语言中的函数类似,对类型要求严格(即函数参数的类型必须符合,返回值转载 2014-05-26 10:37:24 · 819 阅读 · 0 评论 -
C++11 中的线程、锁和条件变量
线程 类std::thread代表一个可执行线程,使用时必须包含头文件。std::thread可以和普通函数,匿名函数和仿函数(一个实现了operator()函数的类)一同使用。另外,它允许向线程函数传递任意数量的参数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14转载 2014-05-26 10:40:38 · 824 阅读 · 0 评论 -
linux源码中关于内存移动或复制的函数详细解说: memmove, memcpy, strcpy
本文讨论的是关于内存复制中内存重叠和不重叠的情况: memmove /** * memmove - Copy one area of memory to another * @dest: Where to copy to * @src: Where to copy from * @count: The size of the area. * * Unlike memcpy(), mem原创 2015-04-19 11:33:59 · 2292 阅读 · 0 评论