C++常见问题答疑
文章平均质量分 81
通过实践来一步步探索C++中一些常见的问题,知其然,知其所以然
liygcheng2010
这个作者很懒,什么都没留下…
展开
-
C++ STL 算法精选之查找篇
C++ STL 算法精选之查找篇原创 2013-08-19 16:56:55 · 2427 阅读 · 0 评论 -
STL 容器之 priority_queue小结
STL 容器之 priority_queue小结优先队列是一种容器适配器类型,它设计为第一个元素总是它所包含的的最大的元素,但这只是默认情况,默认算子为less算子,如果想要使第一个元素为最小的元素,那就应该使用greater算子,当然你也可以自己定义算子。 优先队列很类似于数据结构中的堆结构,因此在一般编程时我们都倾向于 使用优先队列来模拟堆的操作(个人经常这么干)原创 2013-09-14 00:23:02 · 2666 阅读 · 1 评论 -
你在用C++编程时遇到的最多的几个汉字是啥?
首先,什么都不说,我们来看一段代码,然后试着编译运行:#include #include using namespace std;char* h = (char*)malloc(2*sizeof(char));int main(){ cout<<h<<endl; system("pause"); return 0;}运行结果截图:问题一:为什么会出现“屯”原创 2013-11-21 00:52:25 · 3845 阅读 · 5 评论 -
C++中静态链接库与动态链接库的介绍与使用
C++中静态链接库与动态链接库的介绍与使用一,简介1.静态库函数与数据被编译进一个二进制文件(通常扩展名为.lib),在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE),当发布产品时,只需要发布这个可执行文件,并不需要发布使用了的静态库2.动态库在使用动态库的时候,往往需要提供两个原创 2013-12-26 12:47:55 · 1707 阅读 · 0 评论 -
C++中我们为什么提倡使用内存池技术?
1.什么是内存池技术及为什么要设计自己的内存池? 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。C/C++的内存分配(通过malloc或new)可能需要花费很多时。更糟糕的是,随着时间的流逝,内存(memory)将形成碎片,所以一个应用程序的运行会越来越慢当它运行了很长时原创 2013-12-27 23:52:16 · 10616 阅读 · 0 评论 -
C++常见问题之二#define使用中的陷阱
一.使用#define宏应注意的问题1.使用宏定义表达式的时候,加括号是一个好习惯首先我们来看一段简短的代码,并试着分析其输出:#include #define Add(a,b) a+bint main(){ std::cout<<Add(1,2)*Add(2,3)<<std::endl; return 0;}结果输出:很显然,当我们看原创 2014-03-10 01:55:19 · 2897 阅读 · 0 评论 -
C++常见问题之一void&null&0
一. 先从void说起 void 顾名思义,空的意思,在编写C++程序入口函数main的时候,我们经常会看到这样的代码:void main(){//some code…} 在VC++平台中是可以正确编译,链接,执行的,但是在Linux环境下却会产生异常,这里会是怎么回事呢?原因恐怕有二。 其一:市面上一些经典书籍的误导,一个非常有代表性的就是谭浩原创 2014-03-03 00:40:10 · 2546 阅读 · 2 评论