Welcome 微信登录

首页 / 软件开发 / C++

C++ STL中用vector 改进内存的再分配

C++ STL中用vector 改进内存的再分配

C++ STL中用vector 改进内存的再分配2011-04-12winter本文描述的是一种很常见的情况:当你在某个缓存中存储数据时,常常需要在运行时调整 该缓存的大小,以便能容纳更多的数据。本文将讨论如何使用 STL 的 vector 进行内存的再 分配。这里描述的是一种很常见的情况:当你在某个缓存中存储数据时,常常需要在 运行时调整该缓存的大小,以便能容纳更多的数据。传统的内存再分配技术非常繁琐,而且 容易出错:在 C 语言中,一般都是每次在需要扩...
探讨C++实现一个不可被继承的类

探讨C++实现一个不可被继承的类

探讨C++实现一个不可被继承的类2010-02-01 cnblogs 放牛娃C#和Java都提供了一种机制让一个类不能被继承,如C#中的sealed关键字和Java的final关键字,然而C++程序员就没这么好命了。不过C++也可以模拟出这种效果,原理基于:子类的构造函数会自动调用父类的构造函数,同理析构函数也是一样。如果父类的构造函数和析构函数被设为私有的话,那么子类就无法调用,也就达到了父类不可被继承的目的了。原理很简单,按此原理我也实作出一个自认为很...
const传奇

const传奇

const传奇2011-04-12Rahul Singh简介当我自己写程序需要用到const的时候,或者是读别人的代码碰到const的时 候,我常常会停下来想一会儿。许多程序员从来不用const,理由是即使没用const他们也这么 过来了。本文仅对const的用法稍作探讨,希望能够对提高软件的源代码质量有所帮助。常变量变量用const修饰,其值不得被改变。任何改变此变量的代码都会产生编译错 误。Const加在数据类型前后均可。例如void main(voi...
c/c++支持可变参数的函数

c/c++支持可变参数的函数

c/c++支持可变参数的函数2010-02-01一、为什么要使用可变参数的函数?一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。这也是c功能强大的一个方面,其它某些语言,比如fortran就没有这个功能。典型的可变参数函数的例子有大家熟悉的printf()、scanf()等。二、c/c++如何实现可变参数的函数?为了支持可变参...
DLL头文件的格式和应用

DLL头文件的格式和应用

DLL头文件的格式和应用2011-04-12朱海清 孟学桢1、DLL的起源动态链接库(DLL)是从函数库和Pascal库单元的概念发展而 来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从 库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只 把函数储存在已编译的OBJ文件中相比更有利于代码的重用。但随着Windows这样的多 任务环境的出现,函数库的方法显得过于累赘。如果为了完成屏幕输出、消息处...
C/C++函数调用与函数返回值

C/C++函数调用与函数返回值

C/C++函数调用与函数返回值2010-02-01 csdn博客 xiven函数参数与函数调用1、函数调用的作用:·用实参数向形式参数传递数据;·为获得数据参数及在函数体中声明的变量分配存储空间;·中断现行(调用)函数,把流程向被调用函数的入口处,开始执行被调函数。当参数表为空时,表示该函数不从调用函数接受数据。2、数值参数传值调用:形参只有在函数被调用时,才被分配内存区域,并一直保留到函数返回时被撤销为止。形参和...
基于Visual C++的自动化客户端的实现

基于Visual C++的自动化客户端的实现

基于Visual C++的自动化客户端的实现2011-04-12刘涛一、概述我们在编写程序,开发软件的过程中如果能利用已有的程序的功能,那 么可以大大减轻开发过程中程序员的工作量,同时达到事半功倍的效果。例如在工程中,许 多软件需要文字处理功能,虽然MFC提供了一些方法,但是具体实现起来既费事,又有一定的 困难,如果我们可以直接使用Office提供的功能,岂不美哉!要实现这一目的,只需要利用 ActiveX Automation 技术就可以轻松实现。本文主...
Qt学习之路(1):前言

Qt学习之路(1):前言

Qt学习之路(1):前言2010-03-03 51cto FinderCheng我们所使用的Qt,确切地说也就是它的GUI编程部分。C++的GUI编程同Java不同:GUI并不是C++标准的一部分。所以,如果使用Java,那么你最好的选择就是AWT/Swing,或者也可以使SWT/JFace,但是,C++的GUI编程给了你更多的选择:wxWidget, gtk++以及Qt。这几个库我都有接触,但是接触都不是很多,只能靠一些资料和自己的一点粗浅的认识说一下它...
Qt学习之路(2):Hello,world!

Qt学习之路(2):Hello,world!

Qt学习之路(2):Hello,world!2010-03-03 51cto FinderCheng任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍。或许有人总想知道,Qt这个单词是什么意思。其实,这并不是一个缩写词,仅仅是因为它的发明者,TrollTech公司的 CEO,Haarard Nord和Trolltech公司的总裁E...
生死疆界(下)--- 在new与delete之间

生死疆界(下)--- 在new与delete之间

生死疆界(下)--- 在new与delete之间2011-04-12土豆上回《生死疆界(上)》说到: 咱们对着微软在背后做的手脚深感困惑,于是备好车马粮草 ,一路追杀进去,最后走进了死胡同,剩下的最后希望就是在这里摸摸,那里敲敲,看有没 有暗藏机关。这正是:探源码身陷绝境,求解脱心系参数。还记得我们在delete p;前设的断点吗?好,让我们重新开始调试,按F5,从控制台输入 "abcd",然后到这条语句前停止了,查看变量p的值,是0x...
Qt学习之路(4):初探信号槽

Qt学习之路(4):初探信号槽

Qt学习之路(4):初探信号槽2010-03-03 51cto FinderCheng看过了简单的Hello, world! 之后,下面来看看Qt最引以为豪的信号槽机制!所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键,这时,这个组件就会发出一个信号。就像是广播一样,如果有了事件,它就漫天发声。这时,如果有一个槽,正好对应上这个信号,那么,这个槽的函数就会执行,也就是回调。就像广...
在树型控件中移动鼠标产生字体及颜色的变化

在树型控件中移动鼠标产生字体及颜色的变化

在树型控件中移动鼠标产生字体及颜色的变化2011-04-12 vchelp 夕阳人在Windows XP中资源管理器左侧显示目录树结构时,当在项目中移动鼠标的时候,项目标签 的文字的字体和颜色会产生变化,使目录的选择非常醒目.本人在学习制作Windows98的资源管 理器的过程中,加入了相似的功能,其基本思路是:在与TreeCtrl控件关联的类(CDirTreeCtrl) 中重载鼠标移动消息函数,设置相关的文本的颜色参数,在WM_PAINT消息映射函数定义...
Qt学习之路(5):组件布局

Qt学习之路(5):组件布局

Qt学习之路(5):组件布局2010-03-03 51cto FinderCheng顾名思义,绝对定位就是使用最原始的定位方法,给出这个组件的坐标和长宽值。这样,Qt就知道该把组件放在哪里,以及怎么设置组件的大小了。但是这样做的一个问题是,如果用户改变了窗口大小,比如点击了最大化或者拖动窗口边缘,这时,你就要自己编写相应的函数来响应这些变化,以避免那些组件还只是静静地呆在一个角落。或者,更简单的方法是直接禁止用户改变大小。不过,Qt提供了另外的一种机制,就...
在常规的编程任务中使用新的<tuple>库

在常规的编程任务中使用新的&lt;tuple&gt;库

在常规的编程任务中使用新的<tuple>库2011-04-12 MTT工作室 Danny Kalev摘要:Tuples 是大小固定的异构对象集合,它正在被添加到 C++ 标准。学习这种强大的 数据类型有助于简化一些常规的编程任务。C++ 标准委员会目前正在进行标准库的更 新和增强。Tuple 类型是最近添加到 C++ 标准中的内容之一。Tuple 是一个大小固定的异构 对象集合。Tuple 类型非常强大,它有助于简化一些常见的编程任务。本文代码...
<< 101 102 103 104 105 106 107 108 109 110 >>