![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++学习
文章平均质量分 62
ziyuzhao123
这个作者很懒,什么都没留下…
展开
-
zigzag数组
【面试题】输入n,求一个n*n矩阵,形成一个zigzag数组。n=8时,数组如下:方法一:#include #include int main(){ int N; int i,j,s=0; int dir=0; printf("请输入N:"); scanf("%d",&N); int **a=(int**)malloc(N*sizeof(int*)); if原创 2014-02-19 20:58:31 · 637 阅读 · 0 评论 -
C语言之桶排序
转自:http://blog.csdn.net/houapple/article/details/6480100桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(转载 2014-04-18 22:50:40 · 1291 阅读 · 0 评论 -
C枚举类型
1、枚举enum的用途浅例写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等。 更常见的,打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即: const int input = 1; con转载 2014-05-04 20:21:57 · 2666 阅读 · 0 评论 -
大小端模式存储
在存储方式上分为大端模式和小端模式:大端模式原创 2014-05-04 14:46:45 · 749 阅读 · 0 评论 -
静态数据成员和静态成员函数
在C++中,静态成员包含静态原创 2014-05-02 17:08:43 · 1338 阅读 · 0 评论 -
1~9的9个数组成9位数并前n为能被n整除
题目:来自程序员面试宝典请将123456789九个数字以特定的顺序排列,组成一个9位数ABCDEFGHI(每个数字只能使用一次),使得:1.第一位数字组成的整数可以被1整除2.第一、二位数字组成的整数可以被2整除3.第一、二、三位数字组成的整数可以被3整除4.第一、二、三、四位数字组成的整数可以被4整除......分析:E=5(被5整除),则ABCD5FGHI原创 2014-03-08 22:56:37 · 4330 阅读 · 1 评论 -
STL编程
一、STL的概念 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软原创 2014-03-02 21:59:12 · 934 阅读 · 0 评论 -
C++之this指针
1.关于this指针的几点说明:(1)在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this。它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。(2) this指针是隐式使用的,它是作为参数被传递给成员函数的。(3) 编程序者不必人为地在形参中增加this指针,也不必将对象a的地址传给this指针,这些功能由编译系统自动实现.2.t转载 2014-02-18 16:01:20 · 658 阅读 · 0 评论 -
类对象的强制转化
【面试题】请问下面的代码输出的结果是多少?#include using namespace std;class A{private: int m_a; int m_b;public: A(){ m_a = 1;m_b = 2;} ~A(){ } void fun() { printf("%d,%d\n",m_a,m_b); }};class B{priv原创 2014-02-17 14:55:36 · 664 阅读 · 0 评论 -
C语言之快速排序
转自:http://blog.csdn.net/morewindows/article/details/6684558快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总转载 2014-04-06 16:37:58 · 857 阅读 · 0 评论 -
C语言之位操作的作用及应用
转自:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html转载 2014-04-22 17:13:04 · 1331 阅读 · 0 评论 -
C++之将构造函数或析构函数定义为private
很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?这意味着什么? 当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私转载 2014-05-14 22:25:36 · 778 阅读 · 0 评论 -
RAII惯用法:C++资源管理的利器
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用法是在Bjarne Stroustrup的转载 2015-01-21 18:08:56 · 2778 阅读 · 0 评论 -
数组引用问题
"数组引用"以避免"数组降阶"受[hpho]的一段模板函数的启发,特写此文,如有雷同,实在遗憾。数组降阶是个讨厌的事,这在C语言中是个无法解决的问题,先看一段代码,了解什么是"数组降阶"#include using namespace std;void Test( char array[20] ){ cout }int ma转载 2014-11-01 16:21:07 · 2862 阅读 · 0 评论 -
C++ STL 栈和队列的使用
一、栈栈的定义在头文件中,stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack s1;stack s2;stack的基本操作有:对于stack s 入 栈: s.push(x); 出 栈:原创 2014-10-10 01:40:26 · 3333 阅读 · 0 评论 -
不用比较运算符,比较两个整数是否相等
《程序员面试攻略》中有一个原创 2014-11-09 10:25:56 · 3637 阅读 · 0 评论 -
关于const修饰指针
const修饰的变量应该是只读的变量原创 2014-05-04 15:16:15 · 804 阅读 · 0 评论 -
i++和++i的效率比较
在读源码的时候经常遇到自增原创 2014-09-08 16:16:19 · 852 阅读 · 0 评论 -
exit()和atexit()函数
先从一个面试题说起:C原创 2014-07-01 15:27:30 · 971 阅读 · 0 评论 -
C++之动态绑定和静态绑定
转自:http://www.cnblogs.com/chgaowei/archive/2011/05/21/2053129.html转载 2014-05-22 17:40:10 · 575 阅读 · 0 评论 -
【面试题】关于指针
【面试题】下列C++程序会在哪一行崩溃?struct S{int i;int *p;};main(){ S s; int *p=&s.i; p[0]=4; p[1]=3; s.p=p; s.p[1]=1; s.p[0]=2;}【分析】int *p=&s.i时,一直到p[0]=4,p[1]=3的时候,p始终等于&s.i原创 2014-02-17 17:06:57 · 1088 阅读 · 0 评论 -
C语言之函数返回局部变量
一、首先看一道面试题这个函数有什么问题?请指出。[美国著名硬盘公司2008年4月面试题]char *strA(){ char str[]="Hello,World!!"; return str;}答案:因为这个函数返回的是局部变量的地址,当调用这个函数后,这个局部变量str就释放了,所以返回的结果是不确定且不安全的。一般的来说,函数是可以原创 2014-02-17 10:43:55 · 766 阅读 · 0 评论 -
C语言之静态链接库与动态链接库(2)
一、动态链接库(Dynamic Link Library) 动态链接库可以理解为将源代码编译成目标代码后打成的库,该目标代码库可被其他进程在执行时动态调用。DLL 有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容二、动态链接库 vs静态链接库1.静态链接库与动态链接库都是共享代码的方式2.静态链接库(.lib)是在程序编译链接时就进行链接的执行代码库,链转载 2014-02-27 11:44:32 · 1223 阅读 · 0 评论 -
LCS算法
首先将要看到如何运用动态编程查找两个 DNA 序列的最长公共子序列(longest common subsequence,LCS)。发现了新的基因序列的生物学家通常想知道该基因序列与其他哪个序列最相似。查找 LCS 是计算两个序列相似程度的一种方法:LCS 越长,两个序列越相似。子序列中的字符与子字符串中的字符不同,它们不需要是连续的。例如,ACE 是 ABCDE 的子序列,但不是它的子字符串转载 2013-10-27 11:22:25 · 989 阅读 · 0 评论 -
C++中指针和引用(int*、int&、int*&、int&*、int**)
相信很多CPPers跟我一样,曾经在指针和引用里徘徊了很久很久。经常弄混指针和引用,尤其是见到如题中列出那些用法,着实是伤脑经。后来,在项目中用着用着,就能搞清楚区别了,算是会用吧。然而,对于一个Programmer,最忌讳的就是不知其所以然,会用和懂是两番天地。停留在会用的人,始终是原地打转;而懂的人,一通百通,能举一反三。本文,就如题的指针和引用的用法做一个介绍。首先我们来普及一下转载 2013-10-15 17:01:53 · 983 阅读 · 0 评论 -
MFC中加载位图资源到窗口中
一、 从磁盘中加载位图到窗口中---操作步骤1. 创建一个单文档的应用程序,工程名为LoadBmp。2. 在视图类中添加一个成员变量m_hBmp.3. 在视图类的构造函数中调用LoadImage方法从磁盘中加载文件。CLoadBmpView::CLoadBmpView(){ // TODO: add construction code here m_hBmp=(HBITM原创 2013-09-26 16:10:32 · 9072 阅读 · 0 评论 -
在MFC中利用IPicture接口----实现图片显示
在VC++上显示图片的具体思路是将jpeg、bmp文件加载到堆中,然后在堆中创建一个数据流,接着调用OleLoadPicture函数加载流中的数据到IPicture中,最后调用IPicture接口的Reader方法输出图像信息。一、 具体操作如下:1. 创建单文档MFC应用程序,工程名为ShowJPEG.2. 向视图类中添加成员变量。 IStream* m_pSt原创 2013-09-26 12:35:57 · 3814 阅读 · 0 评论 -
基于单文档/视图结构的应用程序中添加启动画面
启动画面是程序在启动前显示的界面,用于显示软件的设计、版权等信息,或者告诉用户正在加载应用程序,请耐心等待。这里重要是加载一幅位图来作为程序的启动画面。方法一:利用组件库中的Splash Screen组件这个方法非常的简单,所以关于利用组件库中的Splash Screen组件的方法这里就不在介绍。方法二:自己制作启动画面步骤:1. 创建一个基于MFC的单文档应用程序,工程名为S原创 2013-09-29 16:50:07 · 1544 阅读 · 0 评论 -
C&C++编译预处理大全
C语言与C++中中编译预处理的学习:首先三种形式的命令:宏定义,文件包含,条件编译命令。1、宏定义主要是:#define,#undef如下:#define PI 3.1415926 /*不带参数的宏定义*/#define Max(a,b) a>b?a:b /*带参数的宏定义*/说明:宏定义在C语转载 2013-07-23 13:49:44 · 688 阅读 · 0 评论 -
C语言中的编译预处理
转自:http://blog.sina.com.cn/s/blog_69c390270101113v.html一、C语言提供了多种编译预处理功能,其中主要的有宏定义、文件包含、条件编译。 预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步转载 2013-07-23 10:57:47 · 1168 阅读 · 0 评论 -
3n+1问题(Hailstone问题)
3n+1问题是一个简单有趣而又没有解决的数学问题。这个问题是由Collatz在1937年提出的。克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thwaites猜想或者Ulam问题。问题如下:(1)输入一个正整数n;(2)如果n=1则结束;(3)如果n是奇数,则n变为3n+1,否则n变为n/2;原创 2013-10-22 21:17:11 · 4025 阅读 · 0 评论 -
C++模板学习
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.floa转载 2013-10-29 22:50:15 · 483 阅读 · 0 评论 -
scanf函数问题
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可是在使用的时候,还是会遇到很多意想不到的问题,汇总见到的几种情况。1. 读取多余的字符例:#include int main(){ char a; while(1) { printf("Hello,World!\n"); scanf("%c",&a); printf("getcha原创 2013-11-02 20:30:16 · 802 阅读 · 0 评论 -
C语言之静态链接库与动态链接库(1)
一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接方式:在转载 2014-02-27 10:52:44 · 3084 阅读 · 0 评论 -
详细讲解C++ 类的继承
一个私有的或保护的派生类不是子类,因为非公共的派生类不能做基类能做的所有的事,就是指在公开场合,但是在类内部可以的一、引言在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而接下转载 2014-02-25 22:33:57 · 909 阅读 · 0 评论 -
c语言--sizeof详解
转自:http://www.cnblogs.com/wangkangluo1/archive/2011/09/27/2193072.html一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。 它并不是函数。 sizeof操作符以字节形式给出了其操作数的存储大小。 操作数可以是一个表达式或括在括号内的类型名转载 2014-01-22 14:45:46 · 653 阅读 · 0 评论 -
C语言--const详解
转自:http://www.cnblogs.com/wangkangluo1/archive/2011/09/27/2193066.html一、const的作用 const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修转载 2014-01-22 15:36:40 · 1463 阅读 · 2 评论 -
(int&)a和(int)&a的区别
先从一到面试题说起:#includeusing namespace std;#includeint main(){ float a = 1.0f; cout << (int)a << endl; //强制类型转换,a的值转换为int型 cout << &a <<endl; //取整型a在内存中的地址 cout << (int)&a <<endl;转载 2013-12-20 15:14:34 · 1363 阅读 · 0 评论 -
关于printf("%*.*f")的问题
先看一道题:四舍五入要求:输入:数字双精度num和n. num是被四舍五入的数,n是保留的小数位数(n>=0) 输出:保留的结果程序如下:#includeint main(){ double num; unsigned int n; printf("Please input num and n:"); scanf("%lf,%d",&num,&原创 2013-12-20 16:59:01 · 6668 阅读 · 1 评论 -
对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)(转载)
摘要前几天参加了一个公司的面试,其中被问到了一个题。面试官在纸上画了一个图形(具体图形见下文),问我能不能一笔画出这个图形,要求每条边必须只走一次,并且画的过程中笔不能离开纸。当时我没有试着去画 ,而是凭着自己图论方面的知识在几秒钟之内告诉面试官不可能做到,然后简单说了一下理由。面试结束后我翻阅了图论相关的资料,发现当时自己虽然给出了正确答案,但理由并不完全正确。昨天我花了几个小时仔细研究了一转载 2013-12-13 15:11:04 · 1004 阅读 · 0 评论