上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
  2011年4月26日
摘要: 模板提供了通用的方法来开发可重用代码,可以创建参数化的C++类型。模板可分为:函数模板和类模板。函数模板的用法同C++预处理器的用法有一定的类似之处,它们都提供编译代码过程中的文本替换功能,但前者可以对类型进行一定的保护。使用类模板可以编写通用的、类型安全的类。STL中仍然要用到函数模板和类模板。实例:/****************************************************************************编制动态数组的模板类 * ********************************************************** 阅读全文
posted @ 2011-04-26 10:45 COS 阅读(243) 评论(0) 推荐(2) 编辑
摘要: 在STL程序中一般需要有一行"using namespace std;",这就是命名空间的应用。为了避免和其他头文件冲突, STL的头文件不再使用常规的.h扩展。而是要使用命名空间namespace.在C++中,名称可以是变量、函数、结构、枚举以及类和结构的成员。随着工程的增大,这些名称相互冲突的可能就增加。当使用多个厂商的类库时,也可能导致名称冲突。C++中的namespace命名空间的提出就可以很好的解决该问题,这也实现了再封装。namespace使用实例:1#include<stdio.h>23namespacemycompany4{5voidfunc() 阅读全文
posted @ 2011-04-26 10:11 COS 阅读(508) 评论(1) 推荐(2) 编辑
摘要: 三十分钟掌握STL 这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。 译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中 阅读全文
posted @ 2011-04-26 09:57 COS 阅读(266) 评论(0) 推荐(1) 编辑
  2011年4月23日
摘要: 那么到底如何查找文件呢?我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在<io.h>的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。具体如何使用,我会慢慢讲来~ 首先讲这个结构体吧~ struct _finddata_t ,这个结构体是用来存储文件各种信息的。说实话,这个结构体的具体定义代码,我没有找到,不过还好,文档里面在_find里有比较详细的成员变量介绍。我基本上就把文档翻译过来讲吧: unsigned atrrib:文件属性的存储位置。它存储一个unsigned单元,用于表示 阅读全文
posted @ 2011-04-23 20:06 COS 阅读(1929) 评论(0) 推荐(0) 编辑
摘要: C++的static关键字 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include <iostream.h>void fn();static int n; //定义静态全局变量void main(){ n=20; cout<<n<<endl; 阅读全文
posted @ 2011-04-23 18:51 COS 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 静态数据成员:下面看一个例子:#include <iostream.h>class Point{public:void output(){}static void init(){ } };void main( void ){Point pt;pt.init();pt.output(); }这样编译是不会有任何错误的。下面这样看#include <iostream.h>class Point{public:void output(){ }static void init(){ } };void main( void ){Point::output();}这样编译会处错,错 阅读全文
posted @ 2011-04-23 18:43 COS 阅读(634) 评论(0) 推荐(0) 编辑
摘要: assert 函数名:assert 功能:测试一个条件并可能使程序终止 用法:voidassert(inttest); 程序例: #include<assert.h> #include<stdio.h> #include<stdlib.h> structITEM{ intkey; intvalue; }; /*additemtolist,makesurelistisnotnull*/ voidadditem(structITEM*itemptr){ assert(itemptr!=NULL); /*additemtolist*/ } intmain(void 阅读全文
posted @ 2011-04-23 17:05 COS 阅读(3280) 评论(0) 推荐(1) 编辑
  2011年4月15日
摘要: 【指针与数组区别】ch[]与*ch??RT,这两个有的时候可以替换。但是存字符串时却不完全相同。char ch1[]="我爱你";char *ch2="我爱你";cout<<sizeof(ch1)<<endl;//结果7cout<<sizeof(ch2)<<endl;//结果4我知道第二个是首地址,但第一个是什么,不懂啊,不是首地址吗?----------------如鹏站内搜索“指针 数组 区别”http://so.rupeng.com/?keyword=%E6%8C%87%E9%92%88+%E6%95 阅读全文
posted @ 2011-04-15 23:02 COS 阅读(506) 评论(0) 推荐(2) 编辑
摘要: 这里讲诉自己对const的各种用法的总结,内容比较多,如果您能够看下去,也许会有些收获! 阅读全文
posted @ 2011-04-15 01:06 COS 阅读(39752) 评论(2) 推荐(2) 编辑
  2011年4月11日
摘要: 逗号运算是用的比较少的运算逗号表达式的形式如下: 表达式1,表达式2,表达式3,...... ,表达式n逗号表达式的要领:(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。即,它的整个的值都是最后一个表达式的值(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。(3) 逗号运算符的优先级别在所有运算符中最低。举例:i=(a=2*3,a*5),a+6;结果是:i=30分析:a=2*3,a*5 是一个逗号表达式,计算值为30; i=(a=2*3,a*5) 这个构成一个赋值语句,这个赋值语句与后面的a+6构成一个逗号语句。类似的可以分析下面的结果~i=((a=2*3,a 阅读全文
posted @ 2011-04-11 20:43 COS 阅读(552) 评论(0) 推荐(1) 编辑
  2011年4月9日
摘要: 当使用VC++编程时,特别是使用到某些Windows自带的DDL库时,如果出现某些莫名其妙的错误时,而且你也找不到程序哪个地方错了的情况下,您不妨试一下重新编译所有的文件,也许这个时候,问题没有了。这就是Rebuild All 的强大之处啊 阅读全文
posted @ 2011-04-09 22:10 COS 阅读(192) 评论(0) 推荐(1) 编辑
摘要: 1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析: 1)、不可以,程序运行时会告诉你非法访问。原因在于,指向类型T的指针并不等价于类型T的数组。extern char *a声明的是一个指针变量而不是字符数组,因此与实际的定义不同,从而造成运行时非法访问。应该将声明改为extern c 阅读全文
posted @ 2011-04-09 21:30 COS 阅读(248) 评论(0) 推荐(1) 编辑
  2011年4月6日
摘要: C/C++数组名与指针区别深入探索网上流传得蛮广的一篇文章,个人认为说的很好,里边是用C++来解释的,不过会C的也差不多能看懂 引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。 想必这种误解的根源在于国内某著名的C程序设计教程。如果这篇文章 阅读全文
posted @ 2011-04-06 23:35 COS 阅读(325) 评论(0) 推荐(2) 编辑
摘要: 传统的方法://输入:inta,n;//输出:inti;//算法效果:求最大的i,使得n!(n的阶乘)可以被a^i(a的i次方)整除,而不能被a^(i+1)(a的i+1次方)整除。#include<iostream.h>#include<string.h>doublefac(intn);intinlinefun1(inta,intn);//intfun2(inta,intn);voidmain(){intn;inta;cout<<"n=";cin>>n;cout<<"a=";cin>> 阅读全文
posted @ 2011-04-06 22:20 COS 阅读(605) 评论(4) 推荐(1) 编辑
  2011年3月30日
摘要: 【归并排序】算法实现 i:开始合并时第一个序列的起始位置; s:合并前序列的大小;t:合并后序列的大小i、i+s-1、i+t-1定义被合并的两个序列的边界。代码实现 1//应用上篇随笔的合并算法,实现数组排序2/********************************************************************/3/************************【归并排序算法】******************************/4/********************************************************** 阅读全文
posted @ 2011-03-30 19:29 COS 阅读(253) 评论(0) 推荐(1) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页