C/C++
文章平均质量分 74
HEVC_CJL
这个作者很懒,什么都没留下…
展开
-
C++堆、栈、自由存储区、全局/静态存储区和常量存储区
原文地址:http://www.cnitblog.com/guopingleee/archive/2011/10/07/54599.html一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—— 一般由程序员分配释放,若程序员不释放,程序结束时可转载 2012-11-30 22:51:21 · 2150 阅读 · 0 评论 -
C++中extern “C”含义深层探索
原文地址:http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html1. 引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它转载 2013-10-06 21:06:44 · 1278 阅读 · 0 评论 -
__declspec(align())内存对齐
原文地址:http://www.cppblog.com/deercoder/archive/2011/03/13/141747.html在上面讲到了关于pack的内存对齐和计算方法,这里继续讲实现内存对齐的另一种方式:__declspec( align(#) )__declspec( align(#) )和#pragma pack( n )有密切联系。当一个变量或结构体同时受两转载 2013-10-06 22:47:21 · 9703 阅读 · 0 评论 -
mutex 与 WaitForSingleObject
WaitForSingleObject的函数原型为:WINBASEAPIDWORDWINAPIWaitForSingleObject( __in HANDLE hHandle, // 对象句柄。可以指定一系列的对象,如Event、Job、Memory resource notification、Mutex、Process、Semaphore、Thread、Waita原创 2013-10-03 19:55:22 · 7967 阅读 · 0 评论 -
InterlockedIncrement函数详解
原文地址:http://hi.baidu.com/hankcs/item/10b8f6cabfb884d297445273InterLockedIncrement and InterLockedDecrement实现数的原子性加减。什么是原子性的加减呢?举个例子:如果一个变量 Long value =0;首先说一下正常情况下的加减操作:value+=1;转载 2013-10-01 14:57:03 · 1497 阅读 · 0 评论 -
线程Sleep(0)
原文地址:http://bbs.csdn.net/topics/370133825我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线转载 2013-09-30 17:18:02 · 1029 阅读 · 0 评论 -
UML中关系图解
原文地址:http://blog.csdn.net/duran1986/article/details/5573415最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有些概念还是经常被混淆的,写在这里是为了加深印象。关系列表:继承关系(Generalization); 实现关系(Realization); 依赖关系(Dependency);转载 2013-09-27 14:04:37 · 1740 阅读 · 0 评论 -
MFC中创建并弹出子窗口
原文地址:http://blog.csdn.net/majian_418/article/details/82304991)首先要添加一个Dialog资源,并把属性中的Visible项设置为true, 然后给该对话框资源添加一个类,比如CTestDlg。2)在父窗口所在的.h文件中包含TestDlg.h文件,并创建一个CTestDlg类的成员,如:转载 2013-08-14 22:52:00 · 10393 阅读 · 1 评论 -
C++ 虚函数表解析
原文地址:http://blog.csdn.net/haoel/article/details/1948051/前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。转载 2013-08-25 18:20:27 · 1022 阅读 · 0 评论 -
Dinic算法的程序实现
原文地址:http://comzyh.tk/blog/archives/568//*Program:POJ 1273 /DinicAuthor:Comzyh*/#include #include #include #include #define min(x,y) ((x<y)?(x):(y))using namespace std;const in转载 2013-09-23 17:36:03 · 1722 阅读 · 0 评论 -
C++中namespace的使用
原文地址:http://blog.sina.com.cn/s/blog_986c99d601010hiv.html命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中。标准C++库(不包括标准C库)中所包含的所有内容(包括常量、变量、结构、类和函数等)都被定义在命名空间std(standard标准)中了。定义命转载 2013-09-26 14:02:19 · 1198 阅读 · 0 评论 -
Longest Consecutive Sequence
其实网上关于leetcode的题目的答案已经相当多了,这也是为啥我自己不把每道题目都贴出来的原因,觉得分析得没人好,代码也没别人的精简。不过,这道题目看到网上有不少做法跟实际要求的O(n)复杂度不太符合,所以特别粘贴出来,也正好记录下自己的一些想法。 说实话,在第二遍做这道题目的时候,我还是没能够把最为完善的解法想出来,能够想到的是利用hash表以序列值为key,1(只是简单做个标记)为v原创 2014-07-31 17:22:17 · 1629 阅读 · 2 评论 -
Sort Colors
这道题目有一个我觉得非常好的解法,即用三个变量i, j, k分别统计0出现次数,0,1出现次数,0,1,2出现次数,这样即可对A[]进行赋值。赋值顺序有讲究,即先赋2,再赋1,最后赋0,这样能够保证A[]对应位置填入正确的值。我觉得这种解法好的地方在于通用性强,因为对于有多于3个的数的这种排序,都能用类似办法很方便地进行解决,假如用普通的双指针来做,那将是特别麻烦的事情。下面贴上AC代码:cl原创 2014-08-01 13:48:35 · 1539 阅读 · 0 评论 -
C++ 中dynamic_cast<>的使用方法
原文地址:http://blog.csdn.net/gogogo/article/details/7073981转载 2014-06-06 10:58:09 · 1633 阅读 · 0 评论 -
使用内存映射文件处理大文件
原文地址:http://www.91tech.net/Article/SoftTech/vctech/200410/116.html转载 2014-05-21 11:50:26 · 2175 阅读 · 0 评论 -
全局变量和局部变量在内存里的区别
原文地址:http://blog.csdn.net/subo86/article/details/4814874一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,转载 2014-01-11 22:31:08 · 1721 阅读 · 0 评论 -
const char*, char const*, char*const的区别
原文地址:http://blog.csdn.net/yingxunren/article/details/3968800const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Languag转载 2013-12-12 20:33:51 · 1683 阅读 · 0 评论 -
析构函数是虚函数的优点是什么
原文地址:http://www.cppblog.com/snail/articles/81722.html为什么类的析构函数也声明为虚拟函数呢?什么时候才需要这么做?用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase转载 2013-09-26 15:39:13 · 1595 阅读 · 0 评论 -
构造函数能不能是虚函数
原文地址:http://blog.csdn.net/woyaowenzi/article/details/2310710最近有人问构造函数能不能是虚函数: 当然不能解释一下:1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内转载 2013-09-26 15:18:49 · 1204 阅读 · 0 评论 -
ANSI,ASCII,Unicode的区别与联系
原文地址:http://blog.renren.com/share/250049229/16257104822?from=0101010202&ref=hotnewsfeed&sfet=102&fin=2&fid=23344375957&ff_id=250049229&platform=0&expose_time=1376215933 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来转载 2013-08-11 18:43:03 · 880 阅读 · 0 评论 -
Visual Studio 2008提高工作效率的小技巧
原文地址:http://www.cnblogs.com/zhubo/archive/2010/04/16/1713792.html时间往往在不经意间就浪费掉了,比如我们在寻找上一个光标位置的时候,好好学习并利用下面的技巧,会提高工作效率,减少不必要浪费的时间,提高时间利用率,让生活更加美好。 1,回到上一个光标位置使用组合键 Ctrl +- 键表示Navigate BackWa转载 2013-07-17 11:45:30 · 1799 阅读 · 0 评论 -
msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
原文地址:http://www.cnblogs.com/minggoddess/archive/2010/12/29/1921077.html很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结,以及关于 MSVC 与 CRT 之间的种种恩怨情仇。如果你使用的作业系统是 Linux、Mac 或其他非 Windows 平台,你可以忽略这篇文章;如果你使用的转载 2013-01-12 23:07:46 · 2020 阅读 · 0 评论 -
VC 项目中可以使用的路径宏
原文地址:http://blog.csdn.net/collin1211/article/details/2483316VC 项目中可以使用的路径宏:宏说明$(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(Reference转载 2013-01-12 21:21:08 · 1350 阅读 · 0 评论 -
去掉VS2005的警告提示
原文地址:http://gamedev.cuit.edu.cn/show.aspx?id=815&cid=80将过去的工程用VS2005打开的时候。你有可能会遇到一大堆的警告:warning C4996。比如:warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf转载 2013-01-13 15:48:10 · 1851 阅读 · 0 评论 -
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
原文地址:http://www.cnblogs.com/rushuizhijing/archive/2011/08/26/2154737.html一、可能的组合:(1)const char*p(2)char const*p(3)char *const p(4)const char **p(5)char const**p(6)char *const *p(7)char转载 2012-12-15 18:16:47 · 1085 阅读 · 0 评论 -
qsort 函数的使用
该函数是我在看x264代码中关于参考帧列表的排序接触到的,总结于此,以作备忘。 功 能: 使用快速排序例程进行排序 原 型: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参 数: 1. 待排序数组首地址原创 2012-12-09 23:02:26 · 1608 阅读 · 0 评论 -
POSIX thread
原文地址:http://wenku.baidu.com/view/2a8ebf896529647d2728528d.htmlPOSIX 线程详解 1POSIX(可移植操作系统接口)线程是提高代码响应和性能的有力手段。在本系列中,Daniel Robbins向您精确地展示在编程中如何使用线程。其中还涉及大量幕后细节,读完本系列文章,您完全可以运用 POSIX 线程创建多线程程序。转载 2012-11-20 19:37:05 · 3150 阅读 · 0 评论 -
offsetof 宏的简介
原文地址:http://baike.baidu.com/view/5513779.htm定义 在stddef.h头文件中,该宏的完整说明如下: #ifdef __cplusplus #ifdef _WIN64 #define offsetof(s,m) (size_t)( (ptrdiff_t)&reinterpret_cast((((s *)0)->m)) )转载 2012-12-03 19:46:04 · 1774 阅读 · 0 评论 -
宏定义中的#,##
(原文地址:http://blog.csdn.net/jiangjingui2011/article/details/6706967)1、在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。(原文:When you put a # before an argument in a preprocessormacro, the preprocessor turn转载 2012-11-18 16:58:52 · 4625 阅读 · 0 评论 -
VTune性能分析器简介
原文地址:http://blog.sina.com.cn/s/blog_704f9d530100pzu3.html7.2.1 VTune简介Intel VTune性能分析器即Intel? VTune? Performance Analyzer可以帮助程序员定位并定性程序中与性能有关方面的内容。Intel? VTune性能分析器也可以在程序运行的系统平台上自动收集性能数据,并将所获得转载 2013-01-12 19:14:09 · 8372 阅读 · 0 评论 -
SDL学习(一)
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。关于SDL的详细介绍可以参考http://baike.baidu原创 2013-02-12 18:14:17 · 6261 阅读 · 3 评论 -
几种进程间的通信方式
原文地址:http://www.cnblogs.com/mydomain/archive/2010/09/23/1833369.html# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。转载 2013-05-01 10:38:05 · 1011 阅读 · 0 评论 -
平衡二叉树(解惑)
原文地址:http://www.cnblogs.com/fornever/archive/2011/11/15/2249492.html平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1很显然,平衡二叉树转载 2013-03-23 22:14:11 · 1449 阅读 · 0 评论 -
register关键字在c语言和c++中的差异
原文地址:http://blog.csdn.net/lfw19891101/article/details/6126114在c++中:(1)register 关键字无法在全局中定义变量,否则会被提示为不正确的存储类。(2)register 关键字在局部作用域中声明时,可以用 & 操作符取地址,一旦使用了取地址操作符,被定义的变量会强制存放在内存中。在c中:(1)register转载 2013-04-03 14:59:15 · 1167 阅读 · 0 评论 -
KMP算法Next数组计算
原文地址:http://blog.csdn.net/xiaoxian8023/article/details/8134292KMP算法是在最近这两年的软件设计师考试中才出现的。2次都是让求Next函数的序列(其实是)。先看看题吧。(2011年下半年上午题)(2012年上半年上午题)其实做这个题很简单,我先说说这个题里的各种概念。给定的字符串叫做模转载 2013-03-20 11:05:15 · 1953 阅读 · 1 评论 -
VC++6.0&&VS2008&MFC&API学习问题总结(一)(多线程CreateThread及小问题汇总) .
原文地址:http://blog.csdn.net/xuyuefei1988/article/details/7773385以下资料部分收集于网络,部分是自己碰到的问题(内容将陆续更新):1、VC++6.0无法设置断点:先关闭程序,然后删除目录下的.opt和.ncb文件,重新打开项目,就OK!2、这个无奈问题折腾了很久,一直以为是数据库问题,本来是修改的东西,害我把数据库整体变转载 2013-02-26 23:22:05 · 2475 阅读 · 2 评论 -
VS2008内存泄露检测 .
原文地址:http://blog.csdn.net/lw370481/article/details/7834209C++程序的复杂性很大一部分在于他的内存管理,没有C#那样的垃圾回收机制,内存管理对初学者来说很困难。经常会出现内存泄露的情况。那么我们写程序如何避免内存泄露呢?首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。 本文描述了如何转载 2013-03-04 20:12:33 · 2904 阅读 · 0 评论 -
SDL学习(三)
本文优化上文所给出的显示bmp图片的程序,并且通过添加新的库文件,使得SDL支持更多的图片格式。 (1) 添加SDL_image库下载地址:http://www.libsdl.org/projects/SDL_image/添加方法与SDL学习(一)中介绍的相同,这里不再重复。 (2) 测试 测试代码如下所示:#include "SDL.h"#include "SDL_i原创 2013-02-12 18:38:00 · 6173 阅读 · 0 评论 -
SDL学习(二)
本文介绍一个最为简单的使用SDL显示bmp图片的实例:#include "SDL.h"int main(int argc, char *argv[]){ // The images SDL_Surface *hello = NULL; SDL_Surface *screen = NULL; // Start SDL SDL_Init(SDL_INIT_EVE原创 2013-02-12 18:26:19 · 3652 阅读 · 0 评论 -
2015-8-29阿里校园招聘研发工程师笔试题
前言:原题来自于网络:http://www.cnblogs.com/nausicaa/p/3946694.html。本人根据自己理解对题目进行解答,由于水平有限,题目有不会做、做错的地方,欢迎大家留言讨论,本博客会持续更新,谢谢关注!1. 某团队有2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的至少有()人 A. 3 B. 4 C.原创 2014-09-01 21:55:22 · 20740 阅读 · 17 评论