![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 57
zhangchao3322218
这个作者很懒,什么都没留下…
展开
-
C/C++中extern关键字详解
转载自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用转载 2013-06-24 21:33:59 · 745 阅读 · 0 评论 -
C++中的文件操作
一、ASCII 输出 为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭转载 2012-08-31 20:38:30 · 1118 阅读 · 0 评论 -
对阵正定矩阵的楚列斯基(Cholesky)分解(C语言)
//定理2.2.3:对阵正定矩阵的楚列斯基(Cholesky)分解//设A为n阶对阵正定矩阵,则存在一个可逆的下三角矩阵G,使得//A=GG’,当限定G的对角元为正时,这种分解是唯一的////--------A=GG’的分解算法-------//参考教材:《数值分析》李乃成,梅立泉,科学出版社// 《计算方法教程》第二版 凌永祥,陈明逵#include#inc原创 2012-03-30 18:46:31 · 8315 阅读 · 0 评论 -
Jacobi迭代法解线性方程组(C语言)
/*-------------Jacobi迭代法解线性方程组---------参考教材:《数值分析》李乃成,梅立泉,科学出版社 《计算方法教程》第二版 凌永祥,陈明逵*/#include#includeint main(void){ double A[5][5] = {{28,-3,0,0,0}, {-3,38,-10,0,-5}, {0原创 2012-03-30 18:44:32 · 22799 阅读 · 0 评论 -
列主元Gauss消去法解线性方程组(C语言)
//Gauss消去法解线性方程组//参考教材《计算方法教程》第二版,西安交通大学出版社#include#includeint main(void){ float A[7][7]={{3,-5,6,4,-2,-3,8}, {1,1,-9,15,1,-9 ,2}, {2,-1,7,5,-1,6,11}, {-1,1,3,2,7,-1,-2},原创 2012-03-30 18:41:20 · 7879 阅读 · 0 评论 -
Romberg积分法计算定积分(C语言)
/*-------------Romberg积分法计算定积分-------参考教材:《数值分析》李乃成,梅立泉,科学出版社 《计算方法教程》第二版 凌永祥,陈明逵*///误差界eps%被积函数为f(x)=(x^3+sin(x))/x;积分区间为[0.3,0.8]#include#include#includeint main(void){/* int原创 2012-03-30 18:48:49 · 6546 阅读 · 1 评论 -
对称矩阵的LDLT分解(C语言)
/*对称矩阵的LDLT分解 定理2.2.2:对称矩阵的三角分解: 设A是n阶对称矩阵,若A的各阶顺序主子式均不等于0,则A可以唯一地分解为 A=LDL’-------------A=LDL’的分解算法-------参考教材:《数值分析》李乃成,梅立泉,科学出版社 《计算方法教程》第二版 凌永祥,陈明逵*/#include#includeint min(原创 2012-03-30 18:45:56 · 6433 阅读 · 1 评论 -
高斯—赛德尔迭代法解线性方程组(C语言)
/*-------------高斯—赛德尔迭代法解线性方程组---------参考教材:《数值分析》李乃成,梅立泉,科学出版社 《计算方法教程》第二版 凌永祥,陈明逵*/#include#includeint main(void){ double A[5][5] = {{28,-3,0,0,0}, {-3,38,-10,0,-5}, {0原创 2012-03-30 18:45:09 · 32007 阅读 · 0 评论 -
三对角阵的LU分解和三对角方程组的求解(C语言)
/*三对角阵的LU分解和三对角方程组的求解-------------A=LU的分解算法-------参考教材:《数值分析》李乃成,梅立泉,科学出版社 《计算方法教程》第二版 凌永祥,陈明逵*/#include#include#includeint main(void){ int i,j,n; int N; printf("请输入 N(10,原创 2012-03-30 18:42:32 · 7271 阅读 · 0 评论 -
C++中#include包含头文件带 .h 和不带 .h 的区别,如<iostream>和<iostream.h>
C++中#include包含头文件带 .h 和不带 .h 的区别?如 #include 和 #include 包含的东西有哪些不同?之前在写C++程序的时候只知道使用 #include 的时候,使用函数前要用 using namespace std; 导入命名空间,而 #include 则不用,这个得看C++标准化过程为C++开发者做了哪些有意义的工作。C++标准化过程转载 2011-11-11 22:44:46 · 1756 阅读 · 0 评论 -
C++标准模板库STL简介
1. C/C++与STL1.1. 什么是STL? STL -- 数据结构和算法的分离,模板(GP); STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组; STL另一个重要特性是它不是面向对象的。为了具有足够通用性,转载 2011-11-10 23:04:49 · 2727 阅读 · 0 评论 -
八皇后问题的解法一
#include #include using namespace std; const int MAX_SIZE = 100;enum flag {blank ='X',queen = 1}; char Chess[MAX_SIZE][MAX_SIZE];//棋盘图int n;//解决n皇后问题int total;//用于计摆放方式 //对棋牌进原创 2011-11-09 18:40:06 · 685 阅读 · 0 评论 -
栈的基本结构和基本操作(c语言描述)
#include /* EOF(=^Z或F6),NULL */#include /* atoi() */#include#include /* malloc()等 */#include /* eof() */#include /* exit() */ /* 函数结果状态代码 */ #define TRUE 1 #define FALSE 0 #define原创 2011-11-10 16:30:35 · 961 阅读 · 0 评论 -
八皇后问题解法二
//在八个皇后的问题中,不必要所有的格子都检查过,例如若某列检查过,//该列的其它格子就不用再检查了,这个方法称为分支修剪。 #include #include #define N 5 int column[N+1]; // 同行是否有皇后,1表示有 int rup[2*N+1]; // 右上至左下是否有皇后 int lup[2*N+1]; // 左上至右原创 2011-11-09 18:41:00 · 438 阅读 · 0 评论 -
C++泛型编程中算法库<algorithm>和向量<vector>的简单实例
#include #include #include using namespace std; void main(void) { const int size = 10 ; vector v(size); //说明容器v,其大小为size vector::iterator start, end, it, pos ; //说明4个泛型指针,即迭代原创 2011-11-19 22:32:38 · 710 阅读 · 0 评论 -
汉诺塔算法
/*汉诺塔算法解法如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘子,就将B当作辅助柱。如果盘数超过2个,将第三个以下的盘子遮起来,就很简单了,每次处理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,其实就是原创 2011-09-28 17:39:24 · 1046 阅读 · 0 评论 -
C++中文件按行读取和逐词读取
#include #include #include using namespace std; void OutPutAnEmptyLine()//输出空行{cout} //读取方式: 逐词读取, 词之间用空格区分void ReadDataFromFileWBW(){ coutifstream fin( "data原创 2012-08-31 21:13:25 · 44691 阅读 · 2 评论 -
动态加载vs静态加载
动态加载:1:灵活,可以在需要的时候用LoadLibrary进行加载,在不需要的时候用FreeLibrary进行卸载,这样可以不必占用内存。2:可以在没有dll时候发现,而不致程序报错。3:加载程序中有条件才运行的库。4:热更新,在不停止程序的前提下进行更新。5:复杂一些,需要显示获得函数地址。6:dll没有对应的lib文件,此时只能进行动态加载。转载 2012-10-18 10:55:03 · 12654 阅读 · 1 评论 -
多重继承与虚继承
参考书籍:《C++ Primer》、《Effective C++》 多重继承与虚继承一、 多重继承1.定义多个类:图1多重继承的Panda层次 定义一个抽象 ZooAnimal 类保存所有动物园动物公共信息并提供公用接口,Bear类将包含 Bear 科的独特信息,以此类推。除了实际的动物园动物类的之外,还有一些辅助类封装不同的抽象,如濒临灭绝的动原创 2013-01-15 09:14:38 · 1766 阅读 · 0 评论 -
二次探查再散列Hash表的C++实现
/***************************************************************************** * student.h ***********************************************************************原创 2012-11-21 22:17:55 · 2491 阅读 · 0 评论 -
图的深度优先(非递归)、广度优先、最小生成树的C++实现
头文件: /***************************************************************************** * algraph.h * * Adjacency List Based Undirected Graph. * * This is a C转载 2012-11-15 21:12:59 · 1485 阅读 · 0 评论 -
Effective C++学习(一)
条款1:视C++为一个语言联邦(View C++ as a federation of languages)C++是个多重泛型编程语言(multiparadigmprogramming language),同时支持过程形式(Multiparadigm programming language)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(ge原创 2012-11-11 20:26:33 · 505 阅读 · 0 评论 -
C/C++中内存管理小结
参考《高质量程序设计指南C++/C》一、 内存分配方式:3种:(1) 从静态存储区分配。内存在程序编译的时候已经分配好了,在程序的整个运行期间都存在。如全局变量,static变量等。(2) 在堆栈上分配。在函数执行期间,函数内部变量(包括形参)的存储单元都创建在堆栈上,函数结束时这些存储单元自动释放(堆栈清退)。效率高,但分配的内存容量有限,可能出现原创 2012-11-09 15:40:34 · 901 阅读 · 0 评论 -
C++ 中 explicit 关键字的作用
C++ 中 explicit 关键字的作用 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。 explicit使用注意事项:explicit关键字只能用于类内部的构造函数声明上,explicit 关键字作用于单个参数的构造函数。在C++中,如果一个类有只有一个参数的构造函数,C++允许一种特殊的原创 2012-11-08 17:25:58 · 598 阅读 · 0 评论 -
双向链表的C++类模板实现
师兄的,转自:http://my.oschina.net/zmjerry/blog/3653头文件: /***************************************************************************** * doublelist.h * * Doub转载 2012-10-25 08:08:07 · 2950 阅读 · 0 评论 -
栈的C++类模板实现
师兄写的,很好!http://my.oschina.net/zmjerry/blog/3652向师兄学习中,可惜进入实验室前师兄就走了,不然能让师兄指导一些头文件: /***************************************************************************** *转载 2012-10-23 22:39:48 · 453 阅读 · 0 评论 -
队列的C++模板实现
师兄写的,很好,目前水平尚浅,看不出有什么地方我能改进的转自:http://my.oschina.net/zmjerry/blog/3656头文件: /***************************************************************************** *转载 2012-10-23 22:42:10 · 480 阅读 · 0 评论 -
C++的头文件和实现文件分别写什么
转自:http://www.cnblogs.com/ider/archive/2011/06/30/what_is_in_cpp_header_and_implementation_file.html在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。转载 2012-10-22 21:41:42 · 563 阅读 · 0 评论 -
c++中const用法小结
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const转载 2012-10-22 18:54:31 · 809 阅读 · 0 评论 -
C++中的inline用法
一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效转载 2012-10-22 17:33:18 · 28068 阅读 · 5 评论 -
n皇后问题的非递归迭代算法(C++实现)
//n皇后问题的非递归迭代算法 #include #include using namespace std;class NQueen{private:int numOfQueen;//the number of queensint numOfanswer;//the number of answersint *queen;原创 2012-10-22 10:00:57 · 2426 阅读 · 0 评论 -
回溯法算法步骤&n皇后问题的详细程序(C++)
/*回溯法有“通用解题法”之称,可以系统的搜索问题的所有解,既有系统性也有跳跃性。它在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树。算法搜索至洁空间树的任一结点时,先判断该结点是否包括该问题的解,如果肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;否则进入该子树,继续按深度优先策略搜索。 回溯法解题的三个步骤: (1)针对所给问原创 2012-10-19 18:47:57 · 11671 阅读 · 0 评论 -
二叉搜索树的非递归C++实现
师兄的,学习了:http://my.oschina.net/zmjerry/blog/6041头文件:/***************************************************************************** * student.h * * A st转载 2012-10-29 22:15:37 · 587 阅读 · 0 评论 -
递归算法求老鼠走迷宫(C语言)
/*说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。解法老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四原创 2011-09-29 17:32:36 · 9750 阅读 · 0 评论 -
递归函数工作原理
递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。 递归通常用来解决结构自相似的问题。所谓结构自相似,是指构成原问题的子问题与原问题在结构上相似,可以用类似的方法解决。具体地,整个问题的转载 2011-09-29 19:39:02 · 18045 阅读 · 2 评论 -
打印杨辉三角的C程序
//打印杨辉三角#include #define N 12long combi(int n, int r){ int i; long p = 1; for(i = 1; i p = p * (n-i+1) / i;原创 2011-09-28 18:08:11 · 1057 阅读 · 0 评论 -
/将x循环右移n位(从最右端移出的位从最左端移入)
//将x循环右移n位(从最右端移出的位从最左端移入)#include unsigned rightrot(unsigned x, unsigned n){ while (n > 0) { if ((x & 1) == 1)原创 2011-09-16 22:55:40 · 1033 阅读 · 0 评论 -
将字符串s1中任何与字符串s2匹配的字符都删去,存放于一个新的字符串s3中
//编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2匹配的字符都删去#include #include char *squeeze(char*s1,char*s2);char s1[];char s2[];char *s3;int原创 2011-09-16 16:10:44 · 2427 阅读 · 0 评论 -
C语言中与文件有关的操作
C语言中与文件有关的操作 对文件进行操作之前,必须通过库函数fopen打开该文件,该库函数存在于头文件中。该函数返回的是一个可以用于文件读写操作的指针,该指针称为文件指针。 在程序中,只需按照下列声明方式声明一个文件指针即可:FILE *fp;原创 2011-09-16 08:57:44 · 754 阅读 · 0 评论 -
编些程序detaba,将输入中的制表符替换为适当数目的空格,使空格充满到下一个制表符终止位的地方
//编些程序detaba,将输入中的制表符替换为适当数目的空格,使空格充满到下一个制表符终止位的地方。//假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位#include #include #include #define MAX_B原创 2011-09-14 09:46:36 · 2211 阅读 · 0 评论