
c++学习笔记
文章平均质量分 65
JasonXcode
不玩音乐的产品经理不是好程序员!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内联函数(inline function)
内联函数定义:嵌入到主调函数中的函数,可以避免函数调用带来的时间开销 只要在函数声明语句或者函数头一处写上inline关键字即可表示该函数是一个内联函数要求:1.不能包括复杂的控制语句2.不能包括递归调用语句3.不能有太多的函数体语句即使定义了inline函数,但如果没有达到上述要求的时候,系统还是会当作普通函数来处理代码例子:#includeUsing n原创 2013-11-14 00:47:44 · 1033 阅读 · 0 评论 -
排序算法之计数排序
计数排序是一种非比较的排序,这种方法思路大概是先算出待排序数据里面的数字分别出现多少次,然后再依据这个存放进新的数组里面,输出这个数组,排序也就完成了。时间复杂度为o(n+k),很多人说是o(n),但其实只是接近而已。其中里面的n是排序的数据个数,而k是排序中最大的值,可想而知,在n确定的情况下,k的值越小,时间复杂度越低,例如就算n很小,但排序数是{2,5,3,10000}的话,那也需要很多时间原创 2013-12-03 08:50:13 · 770 阅读 · 0 评论 -
动态分配内存与悬空指针
int F(int **P) { int a=10; *P = &a; return 0; } 这是以前想过原创 2013-12-05 20:45:42 · 1088 阅读 · 0 评论 -
c++模版 template
c++中定义重载函数可以使代码重用,而模版template也是实现代码重用机制的一种工具。它可以把参数类型化,也可以说是抽象化,而到真正调用的时候,系统会识别参数真正的类型,从而自动实例化参数,进行调用。 举个例子,实现两个数交换的函数swap() 实现两个int型数据交换: swap(int x, int原创 2013-12-03 09:51:32 · 765 阅读 · 0 评论 -
计算机数据结构考研题目
最近做了一个数据结构的考研题目,跟大家分享一下。 题目如下: 这道题用指针的方法来做是很合适的。其实,只追求做出来的话,大可以遍历到尾节点,再往前遍历,求出第n个元素的data。这样的话,肯定不是最高效的算法。不知道大家有没有听过跟班指针。原创 2013-12-10 00:47:31 · 1702 阅读 · 0 评论 -
函数模版template学习中的一个编译问题
c++学习函数模版的时候,写了一个交换函数的程序,函数为swap(),目的是交换两个数据。 源程序: #includeusing namespace std;template void swap(T& x, T& y){ T t; t = x; x = y; y = t;}int main(){ int原创 2013-12-03 10:05:20 · 976 阅读 · 0 评论 -
联想公司笔试题【1】
int i(j=4,k=8,l=16,m=32); cout 输出i为多少? 自己补充的代码: #includeusing namespace std;int main(){ int j,k,l,m; int i = (j=4,k=8,l=16,m=原创 2013-11-29 11:08:19 · 1272 阅读 · 0 评论 -
微软面试题【2】
求下面函数的返回值(微软) int func(int x){ int count = 0; while(x) { count++; x = x & (x-1); } return (count);} 自己补充的完整代码: #includeusing namespace std;in原创 2013-11-29 10:18:27 · 798 阅读 · 0 评论 -
二叉树递归,非递归,前中后遍历
又是一个数据结构的实验。这个实验要求实现二叉树的前,中,后序递归,非递归遍历。 一开始,想了一个最普遍的做法,其实也是实验题目上的建议。比如,输入1 2 0 0 3 0 0,0表示节点为空。后来在网上逛了逛,发现这种输入形式的二叉树比较清晰,比如1(2,3) 显然,2是1的左孩子,3是1的右孩子。其实实现的办法也不是很复杂,定义一个字符数组s[100],再定义两个原创 2013-11-26 15:38:03 · 746 阅读 · 0 评论 -
微软公司面试题【1】
这道题挺简单的,但网上说,这是微软的面试题,初学编程的可以看看。 题目: 求质数的和。如:F(4)= 2+3+5+7 = 17,输入F(x)。 运行结果: 自己敲的代码: #includeusi原创 2013-11-25 00:17:15 · 928 阅读 · 0 评论 -
枚举算法(判断n是否能被3,5,7整除)
枚举算法:也称穷举算法,它是编程中常用的一种算法。在解决某些问题的时候,可能无法按照一定规律从众多的候选答案中找出正确的答案。此时,可以从众多的候选解中逐一取出候选答案,并验证候选答案是否为正确的答案。这种方法就是枚举算法。 缺点:运算量比较大,接替效率不高。如果枚举的范围太大,在时间上就难以承受。 优点:思路简单,程序编写和调试方便。原创 2013-11-24 15:45:07 · 3893 阅读 · 0 评论 -
动态数组(c++)
相信很多朋友们在建立数组的时候,都会给一个100的长度,因为无法确定数组的上限,只能预留大量内存,进而降低了系统的性能,而动态数组解决了这个问题。 下面是动态数组一个简单的小程序: #include#include //注意头文件vectorusing namespace std;int main()原创 2013-11-21 17:33:52 · 813 阅读 · 0 评论 -
运算符重载(c++)
运算符重载的应用,计算两个复数的和。 #includeusing namespace std;//类体**********************class Complex{public: //无参构造函数赋初始值 Complex() { real = 0; imag = 0; } //有参构造函数 Complex(doub原创 2013-11-21 17:46:37 · 903 阅读 · 0 评论 -
约瑟夫问题(c++)
今天花几小时完成了数据结构的实验题,里面实现了循环单链表的构建,节点的删除。 但说句实话,里面的执行函数我写的时候就有点别扭,觉得不太好,有点混乱,虽然最终还是实现出来了,供大家参考,也希望有朋友指点改进一下! 编译结果: 源代码: #includeusing n原创 2013-11-21 16:02:27 · 3016 阅读 · 0 评论 -
函数嵌套(c++)
函数的嵌套是指在A函数里调用B函数(A,B都不是主函数)。当然,要注意的是:只允许函数的嵌套调用,但不允许函数的嵌套定义,也就是不能在A函数里定义B函数。 下面是函数嵌套作用一个简单的例子:求三个数中最大的一个。 #includeusing namespace std;int maxoftow(int i,int j);原创 2013-11-21 17:28:29 · 1861 阅读 · 0 评论