上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: vector的内存增长问题,其实无非是vector中size()和capacity()问题。vector的一个缺点就是它的内存分配是按照2的倍数分配内存的。当当前容量对插入元素不够时,分配一块新的内存,这块内存的容量是原vector容量 的2倍大小,然后复制旧内存,释放旧内存,可能多次涉及拷贝构造函 阅读全文
posted @ 2016-08-09 16:23 立超的专栏 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 变量可以分为全局变量、静态全局变量、局部变量和静态局部变量变量的声明有两种情况:1)一种是需要建立存储空间的(定义性声明)。例如int a 在生命的时候就已经建立了存储空间。2)另一种是不需要建立存储空间的(引用性声明)。例如extern int a 其中变量a是在别的文件中定义的。内存区域的划分: 阅读全文
posted @ 2016-08-09 16:06 立超的专栏 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 快速排序: 时间复杂度O(N*logN),最坏情况为O(N^2) 空间复杂度O(1) 但是堆栈深度一般情况为O(logN),最坏情况为O(N) 快速排序实现: partition划分算法: 然后,对整个数组进行递归排序: 算法导论中提到的快速排序的优化版本:就地重排 本文重点:三向切分 快速排序什么 阅读全文
posted @ 2016-08-09 15:52 立超的专栏 阅读(3860) 评论(1) 推荐(0) 编辑
摘要: 从C++角度上说,使用new分配堆空间可以调用类的构造函数,而malloc()函数仅仅是一个函数调用,它不会调用构造函数,它所接受的参数是一个unsigned long类型。同样,delete在释放堆空间之前会调用析构函数,而free函数则不会。 new/delete Allocate/releas 阅读全文
posted @ 2016-08-09 10:44 立超的专栏 阅读(274) 评论(0) 推荐(0) 编辑
摘要: C++程序内存布局: 代码区(code area) 程序内存空间 全局数据区(data area) 堆区(heap area) 栈区(stack area) 一个由C/C++编译的程序占用的内存分为以下几个部分, 1)全局区(静态区)(static)存放全局变量、静态数据,const常量。程序结束后 阅读全文
posted @ 2016-08-09 10:36 立超的专栏 阅读(2701) 评论(0) 推荐(1) 编辑
摘要: 代码区(code area) 程序内存空间 全局数据区(data area) 堆区(heap area) 栈区(stack area) 一个由C/C++编译的程序占用的内存分为以下几个部分, 1)全局区(静态区:BSS段,数据段)(static)存放全局变量、静态数据,const常量。程序结束后有系 阅读全文
posted @ 2016-08-09 10:34 立超的专栏 阅读(567) 评论(0) 推荐(0) 编辑
摘要: (1)指针是一个变量,只不过这个变量存储的是一个地址,这个地址指向内存的一个存储单元。引用跟原来的变量实质是一个东西,只不过是原变量的一个别名,不占用内存,只是在编译时,系统会临时分配一个类似与变量的东西存储,编译完也就释放了,具体咋折腾跟编译器有关系。(一般讨论的堆区和栈区...占用内存,都是指的 阅读全文
posted @ 2016-08-09 10:30 立超的专栏 阅读(176) 评论(0) 推荐(0) 编辑
摘要: Things You'll Need Proficiency in C++ C++ compiler Debugger and other investigative software tools 1 Understand the operator basics. The C++ operator 阅读全文
posted @ 2016-08-09 10:27 立超的专栏 阅读(3087) 评论(0) 推荐(0) 编辑
摘要: 在Visual Studio中 第一步:打断点 第二步:Debug Star Debugging 或直接按”F5“ 第三步:Debug Windows Disassembly,如下图 第四步:汇编代码已经出来了…… 在CodeBlocks中 第一步:打断点 第二步:Debug Start/Conti 阅读全文
posted @ 2016-05-09 16:31 立超的专栏 阅读(4565) 评论(0) 推荐(1) 编辑
摘要: __cdecl __fastcall与__stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数 阅读全文
posted @ 2016-04-13 09:24 立超的专栏 阅读(338) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 下一页