
C/C++
文章平均质量分 54
chn_cf
这个作者很懒,什么都没留下…
展开
-
基本数据类型
<br />基本数据类型对应的字节数(32位系统)<br />char 1<br />short 2<br />int 4<br />long 4<br />long long 8<br />float 4<br />double 8<br />long double 8<br />注意:不同的平台可能有所不同,这里只是一般原创 2011-06-02 15:22:00 · 128 阅读 · 0 评论 -
bitset学习
有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假设都使用了std转载 2011-09-18 19:44:50 · 225 阅读 · 0 评论 -
静态数据成员(static)
(1)***静态数据成员只占一份空间.每个对象都可以引用这个静态数据成员。静态数据成员的值对所有对象都是一样的。如果改变了它的值,则在各对象中这个数据成员的值都同时改变了。这样可以节约空间,提高效率。在一个类中可以有一个或多个静态数据成员,所有的对象共享这些数据成转载 2011-09-19 11:19:48 · 510 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
class String{public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~String(void);原创 2011-07-12 22:55:11 · 183 阅读 · 0 评论 -
标准模板库(STL)学习探究之Multimap容器
C++ Multimaps(多映射)C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素。(具体用法请参考map容器)函数列表:begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 count() 返回一个元素出转载 2011-09-19 16:44:45 · 332 阅读 · 0 评论 -
C风格字符串
一、字符串字面值字符串字面值是一串常量字符,字符串字面值常量用双引号括起来的零个或多个字符表示,为兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。"Hello World!" //simple string literal转载 2011-09-20 11:38:39 · 1036 阅读 · 0 评论 -
变量和基本类型(C++ Primer学习笔记)
1. linux下查看main函数返回值 echo $? 。2. endl是一个特殊值,称为操纵符(mainpulator),具有换行和刷新与设备相关缓冲区的作用。3. 注释对不可嵌套。4. 可以用std::cin >> value 读取未知数目的输入。Windows原创 2011-09-16 17:17:43 · 278 阅读 · 0 评论 -
C++强制类型转换
C++强制类型转换关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:转载 2011-09-21 15:59:02 · 200 阅读 · 0 评论 -
精解C++的switch语句
入门书籍对switch语句的介绍相对较浅,我也因此而产生了很多想当然的误解。为解惑而写了以下一小篇精解switch语句,相信会对很多朋友有所帮助,同时顺便补充一些相关知识。先抛出个题目,见下程序://原代码出自《C语言参考手册(原书第5版)》//为了表达我转载 2011-09-21 16:21:49 · 631 阅读 · 0 评论 -
C++标准IO库(C++ Primer学习笔记)
IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,sstream所定义的类型用于读写存储在内存中的string对象。 头文件 类型 iostream i转载 2011-09-24 19:42:41 · 676 阅读 · 0 评论 -
C++ stringstream介绍,使用方法与例子
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格转载 2011-09-24 21:50:37 · 331 阅读 · 0 评论 -
C++文件操作详解(ifstream、ofstream、fstream)
C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)转载 2011-09-24 21:49:02 · 360 阅读 · 0 评论 -
数据结构(程序员面试宝典学习)
1.给出一个单链表,不知道节点数N的值,怎样遍历一次就可以求出中间节点?void searchmid(node *head, node *mid){ node *temp = head; while(head -> next -> next != NU原创 2011-09-25 22:33:01 · 1093 阅读 · 0 评论 -
区分C++中的重载,重写,重定义
1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。1) 被重写的函数不能是 static 的。必须是 virtual 的,或者是 override 的 ( 即函数在最原始的基类中被声明为 virtua转载 2011-09-21 22:54:35 · 1110 阅读 · 0 评论 -
c++--公有继承,私有继承和保护继承
1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。 2. 私有继承(private) 私有继承的特点是基类的公有成员和保护成员都作为派生类转载 2011-09-27 22:20:19 · 275 阅读 · 0 评论 -
C/C++ 笔试、面试题目大汇总
这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 1.求下面函数的返回值( 微软)int func(x) { int countx = 0; w转载 2011-09-24 23:18:00 · 540 阅读 · 0 评论 -
#运算符
#defineSQR(x) printf("The square of x is %d.\n", ((x)*(x)));#defineSQR2(x) printf("The square of "#x" is %d.\n", ((x)*(x)));#defineXNAME(n) x ## n intmain(int argc, char*原创 2011-06-06 17:37:00 · 171 阅读 · 0 评论 -
不重复的随机数
#include#include #include using namespace std;int random_int(int m, int n); //返回[m,n)之间的随机整数void random_int_K(int n, int k, int *pResult);//生成[0,n)之间不重复的k个随机数int main(void){ ////////原创 2011-11-30 13:03:08 · 609 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的转载 2011-09-18 09:25:13 · 154 阅读 · 0 评论 -
静态成员函数(static)
成员函数也可以定义为静态的,在类中声明函数的前面加static就成了静态成员函数。如static int volume();**和静态数据成员一样静态成员函数是类的一部分,而不是对象的一部分。如果在类外调用公用的静态成员函数,要用类名和域运算符“::”.如Bo转载 2011-09-19 11:16:46 · 246 阅读 · 0 评论 -
C语言文件操作
文件文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。转载 2011-09-17 09:22:30 · 189 阅读 · 0 评论 -
声明与定义
<br />声明告诉编译器这个名字已被预定且已经匹配到一块内存,但没有分配内存,定义则创建对象并为这个对象分配内存。原创 2011-06-02 14:21:00 · 159 阅读 · 0 评论 -
C语言关键字
平时未注意或不常使用的关键字:auto声明自动变量,缺省时编译器一般默认为autounion声明联合体数据类型enum声明枚举类型register声明寄存器变量volatile说明变量在程序执行时可被隐含地改变extern声明变量是在其他文件中声明(也可以看作是引用变量)sizeof计算对象所占的内存空间大小原创 2011-06-02 14:04:00 · 464 阅读 · 0 评论 -
两个整数交换不使用临时空间
方法1:a = a + b;b = a - b;a = a - b;方法2:a ^= b;b ^= a;a ^= b;方法3:a = a * b;b = a / b;a = a / b;原创 2011-06-05 11:53:00 · 391 阅读 · 1 评论 -
指针和数组
1.a与&a的区别 int a[5]a指数组首元素的地址,即a[0]的地址&a是数组的首地址 int main(int argc, char* argv[]){ int a[5] = {1,2,3,4,5}; int *ptr = (int *)(&a + 1); printf("%d,%d/n", *(a+1), *(ptr-1));原创 2011-06-06 21:40:00 · 267 阅读 · 0 评论 -
栈、堆和静态区
栈:保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束时,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。堆:由malloc系列函数或new操作符分配的内存。其生命周期由free或delete决定。在没有释放之前一直存在,直到程序结束。其特点是使用灵活,空间比较大,但容易出错。静态区:保存自动全局变量和static变量(包括static全局和局部变量)。静态区的内容在整个原创 2011-06-06 15:47:00 · 167 阅读 · 0 评论 -
#pragma
1. #pragma message #define X#ifdef X#pragma message("消息文本")#endif 注意:消息文本在编译输出窗口中显示。 2. #pragma once 只要在头文件中加入这条指令就能保证头文件被编译一次。 3. #pragma code_seg 设置程序中函数代码段存放的代码段。在开放驱原创 2011-06-06 16:55:00 · 174 阅读 · 0 评论 -
常见ASCII码的大小规则
常见ASCII码的大小规则0~9<A~Z<a~z1)数字比字母要小。如 ‘7’<’F’;2)数字0比数字9要小,并按0到9顺序递增。如 ‘3’<’8’3)字母A比字母Z要小,并按A到Z顺序递增。如’A’<’Z’ 4)同个字母的大写字母比小写字母要小32。如’A’<’a’ 几个常见字母的ASCII码大小换行LF 0x0A 10回原创 2011-06-08 14:30:00 · 4374 阅读 · 0 评论 -
一些程序设计的题
1.int i = 1;int main(){ int i = i; cout i endl; return 0;}这是合法但不合理的。int i = i,i变量从声明那一刻起就是可见的了。main()里的i不是1,它和main()外的i无关,是一个未定义的值。 2.int func(int x){ int count = 0;原创 2011-06-13 22:20:00 · 237 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~String(void); // 析构函数S原创 2011-07-12 22:53:41 · 88 阅读 · 0 评论 -
Makefile简单实例
【转载,非常不错的一篇博文,循序渐进,简单易懂】假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include #include int main(int argc,char **argv) { mytool1_prin转载 2011-09-13 20:06:44 · 310 阅读 · 0 评论 -
automake简单实例
1、准备: 需要工具autoscan aclocal autoheader automake autoconf make 等工具.2、测试程序编写: 建立目录:mkdir include src 编写程序:include/str.h#in转载 2011-09-13 20:16:51 · 340 阅读 · 0 评论 -
Makefile中文教程
Makefile中文教程1. 概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但要做一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,转载 2011-08-13 23:07:19 · 416 阅读 · 0 评论 -
C/C++中Static的作用详述
C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文转载 2011-09-16 16:19:22 · 135 阅读 · 0 评论 -
C++中static的全部用法
核心提示:要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是autostatic的全部用法要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通转载 2011-09-16 16:20:31 · 333 阅读 · 1 评论 -
& | ~ ^ 位运算的蛋疼妙用
1. 交换两个数但不能使用临时变量// method 1void swap (int* a, int* b) { *a ^= *b; *b ^= *a; *a ^= *b;}// method 2void swap (int* a, int* b) { // 乘号改成加号时,除号改成减号。// 当 *a 和 *b 都很大时,第一句可能会溢出。 *a转载 2011-06-15 21:52:00 · 203 阅读 · 0 评论 -
内存对齐问题
最近在调试中遇到点内存对齐的问题,别人问我是怎么回事,我赶紧偷偷查了一下,记录下来。不论是C、C++对于内存对齐的问题在原理上是一致的,对齐的原因和表现,简单总结一下,以便朋友们共享。一、内存对齐的原因大部分的参考资料都是如是说的:1、平台原因(移植原因)转载 2011-09-16 16:27:03 · 173 阅读 · 0 评论 -
小知识点
1.case关键字后面只能是整型或字符型常量或常量表达式。 2.左移(>)操作中,移动的位数不能超过数据长度,不能小于0。 3.模运算的余数与被除数相同,例:3/(-2) = -1 ; 3%(-2) = 1 4.用malloc函数申请0字节内存并不返回NU原创 2011-06-02 17:34:00 · 182 阅读 · 0 评论 -
快速排序c++语言代码
int partition(int *arr, int i, int j){ int tmp = arr[i]; while (i < j) { while(i= tmp) { --j; } arr[i] = arr[j]; while (i<j && arr[i] <= tmp) { ++i; } arr[j] =原创 2011-11-10 19:22:39 · 404 阅读 · 0 评论