笔记
文章平均质量分 72
Guy_Fwakes
talk is cheap show me the code
展开
-
Unix/Linux -shell&vim
1 操作系统操作系统分为系统内核(kenel)和外壳(shell),其中内核是操作系统的核心部分,它由操作系统中管理存储器,文件,外设和系统资源的那部分组成。内核通常运行进程并提供进程间通信(ipc)的机制。2 shell 它是接收用户命令,然后调用相应的应用程序的“提供使用界面”的软件(命令解析器)。作为命令语言,它交互式解释和执行用户输入的命令或者自动的解释和执行预先设定好的一原创 2014-02-27 17:40:42 · 665 阅读 · 0 评论 -
[C_7]指针
12 指针12.1void*指针 void指针可以接受任意类型的指针变量12.2 类型确定右左法则:第一次开始阅读声明的时候,必须从变量开始,而不是从最内部的括号 开始,向右看,碰到一个括号(只是说括号,中括号不算)就调转阅读的方向,括号 内的分析完时就跳出括号,这样继续,直到整个声明被分析完。12.3指向数组的指针 int* p[5]; int(*p)[5]原创 2014-02-27 21:54:39 · 392 阅读 · 0 评论 -
[C++_6]运算符重载
12 运算符重载不能重载的操作符: 三目运算符 ? : . 也不能重载只能用成员函数来重载 = -> [] () (类型转换) ()是个函数对象,必须是成员12.1 运算符重载方法运算符重载函数分为两种:1成员函数 2友元函数声明如下:ostream& operatorfriend ostream& operator友元函数总比成员函数原创 2014-03-02 13:41:09 · 437 阅读 · 0 评论 -
[DS&A]单链表类
关键成员函数:getptr( ),理解为甚么返回类型为 Node*&linklist.h:#ifndef _LINKLIST#define _LINKLIST#includetypedef int T;class linklist{ struct Node { T data; Node *next; Node(T d = T()):data(d),next(0)原创 2014-03-13 13:11:07 · 468 阅读 · 0 评论 -
[C++_12]IO_2
16.3 字符串IOistringstream / ostringstream : stringstream#include#include#includeusing namespace std;int main(){ string str1,str2,str3; cout << "请输入一行字符:" << endl; getline(cin,str1); istr原创 2014-03-06 20:16:48 · 657 阅读 · 0 评论 -
[DS&A]栈
栈的实现方式有两种:一种以数组的形式作为存储方式,另一中则以链表形式。第一种较简单不做过多的模拟。注意一个问题: 在一个加了const限定符的成员函数中,不能够调用 非const成员函数。提示错误:.discards qualifiers 的意思就是缺少限定符,为了修改const在linklist.cpp中使用从const_castlinklist.h(修改过)#ifndef原创 2014-03-13 16:55:05 · 429 阅读 · 0 评论 -
[C++_13]异常
对于异常的理解:http://bbs.csdn.net/topics/390146571原创 2014-03-08 14:45:23 · 455 阅读 · 0 评论 -
[DS&A]队列
队列实现:1.使用链表类的组合实现 2.使用数组实现(循环)。下面提供了第二种实现,注意首尾下表的增减公式,另:为什么size()中计算队列的有效个数公式,在下列情况(满队)失效。//数组实现队列--循环队列#includeusing namespace std;const int Max = 5;typedef int T;class qu原创 2014-03-14 21:00:23 · 493 阅读 · 0 评论 -
[DS&A]基本排序比较
问题:使用clock函数显示为零#include#include#includeusing namespace std;//冒泡void bubblesort(int a[],int cnt){ bool flag = true; while(flag) { flag = false; for(int i = 1; i < cnt ;i++) { if(a[原创 2014-03-16 15:39:20 · 478 阅读 · 0 评论 -
[DS&A]二叉排序树
注意:1 递归的使用 2 形参是否使用引用,const的思考下面的代码中尤其注意Insert( ),find( ),remove( )函数的思路及形参,返回值的形式。 //递归实现二叉查找树#include#includeusing namespace std;typedef int T;class bst{ struct N原创 2014-03-15 23:14:22 · 424 阅读 · 0 评论 -
[DS&A]二分法查找
二分法查找:适用于有序的顺序序列。#include#include#include#includeusing namespace std;class Person{private: string name; int age; public: Person(const char* name,int age):name(name),age(age){}原创 2014-03-16 09:31:43 · 315 阅读 · 0 评论 -
[C_1]编译 _基本类型
操作环境:Ubuntu13.10编辑环境:vim编译器:gcc1 gcc编译命令GCC基本用法 :gcc [option] [filenames]option可选为:-c 只编译不链接,生成.o文件,常用编译不包含主程序的子程序文件-o output_filename 确定输出名称为output_filename,默认为a.out-g 符号调试工具-O 优化原创 2014-02-27 19:18:52 · 702 阅读 · 0 评论 -
[Linux高级编程]工具&库
1 gcc基本命令 -o 输出文件名 -O -O0 -O1 -O2 -O3 编译优化 -g -g0 -g1 -g2 -g3 产生调试信息 -W all error -Wall 显示原创 2014-05-02 14:16:59 · 544 阅读 · 0 评论 -
[Linux高级编程]内存管理&映射&分配
1 内存管理1 .1 Linux对内存的描述1.1.1 查看进程信息/proc/$(pid)/ proc存放进程运行时候所有的信息(包括内存结构) 进程查看: ps aue (all user effective)-->获取进程ID查看内存结构:cd proc >> ps aue >>cd PID >> cat maps 结论:任何程序的内存空间分原创 2014-05-02 14:14:24 · 535 阅读 · 1 评论 -
[STL]标准容器
1 STL1.1 通用算法(函数模板) 通用算法依赖迭代器实现,可以从头到尾遍历整个容器的方法 for_each() find find_if count count_if sort copy iterator find(pos_beg, pos_end, data) iterator find_if(pos_beg, pos_end, cond),原创 2014-05-02 14:11:25 · 472 阅读 · 0 评论 -
[STL]模板(类&函数)
模板模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是类模版,另一个是函数模版。类模板基本用法: template class类名{ ... 类定义 ...原创 2014-03-17 22:58:19 · 531 阅读 · 0 评论 -
[C++_11] IO_1
16 IO16.1 格式化IOC++提供了两种格式控制的方法:一种方法是使用ios类中有关格式控制的成员函数;另一种方法是使用称为可是控制符的特殊类型的函数16.1.1 用ios类的成员函数进行格式控制ios类中有几个成员函数可以用来对输入输出进行格式控制,进行格式控制主要是通过对格式状态字,域宽,填充字符以及输出精度的操作来完成的。16.1.2 格式状态字输入原创 2014-03-06 16:22:38 · 844 阅读 · 0 评论 -
?[C++_10]RTTI
15 RTTI(运行时类型识别)程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。注意:g++ RTTI 开启/关闭:-frtti / -fno-rtti 在VC6.0运行时,记原创 2014-03-04 22:33:31 · 605 阅读 · 0 评论 -
[C_2]格式化输入输出
3 格式化输入输出3.1 printf()函数:格式控制 % - 0 m.n l或者h1 %转换开始位置(占位符)2 – 左对齐,默认右对齐3 0 表示空位填0(也可以是其他字符),省略表示不填零4 m.n m表示输出总共占多少字符,n表示精度,小数点后几位默认n = 65 l或者 h l整数 – long 浮点数 – double h整数 – short6 格式字原创 2014-02-27 19:55:43 · 896 阅读 · 0 评论 -
[C_3]位运算&控制结构&枚举
4 位运算应用&测试某个二进制位的某位是1还是0|测试某位是1还是0^交换两个数~左移n位相当于乘2^n>>右移b位相当于除2^n注意:左移或者右移不能超其二进制数的总位数原创 2014-02-27 20:40:58 · 906 阅读 · 0 评论 -
[C_6]修饰符&宏_头文件
10修饰符10.1static全局变量:加static修饰的全局变量,只能在本文件中使用。局部变量:加static修饰的局部变量,超出作用域不会被释放,直到结束10.2 extern告诉编译器,变量已在其他文件中声明过了,对于static变量无效。10.3 register请求编译器把变量放到寄存器里,可能不成功 ,用在循环里可以提高效率 10.4 volatitl原创 2014-02-27 21:35:09 · 620 阅读 · 0 评论 -
[C_9] IO & 标准库
15 IO15.1 字符IOgetchar/putchar //从屏幕 输入输出一个字符fgetc/fputc getc/putc(有的编译器可能是宏) //从文件输出输入getchar();//会让程序暂时等待从效率上看,专用的(输入输出函数)比通用的(输入输出函数)快ungetc退回一个字符feof(FILE*) //检查是否超越了文件末尾,一般不用原创 2014-02-27 22:13:36 · 643 阅读 · 0 评论 -
[C_4]数组&字符串
6 数组6.1数组初始化int a[100] ={ [19]=20,[10]=100,[58]=15}C99中的变长数组:int n;scanf(“%d”, &n);int a[n];// -std =C996.2 数组与地址若有int a[20];则存在的等价关系为:a&a&a[i原创 2014-02-27 21:13:47 · 497 阅读 · 0 评论 -
[C_5]内存补/对齐&函数
8内存对齐&补齐(了解) 变量的地址是变量本身所占字节数的倍数。分配空间到内存地址的边界上。对齐可以提高访问速度。 char 1 地址是1的倍数 int 4 地址是4的倍数 typedef struct Goods { char name[18]; //18 double price //8 char special原创 2014-02-27 21:23:53 · 492 阅读 · 0 评论 -
[C_8] typedef & 内存分配
13 typedef13.1 函数指针重命名int (*x (void(*p)( ) )) (char);//返回类型int(*)(char) 函数名 x 形参 void(*p)()变量x定义为一个函数替换: typedef void (*T)(); //定义T为指向void func()函数的指针typedef int (*U)(char); //定义U为指向in原创 2014-02-27 22:05:19 · 1002 阅读 · 0 评论 -
[C++_1]C与C++区别
操作环境:Ubuntu 13.10 编辑环境:vim/kate 编译器:g++1 C++与C的区别1.1 编译器及头文件等1可以选用个g++编译器2源文件扩展名可以是 .cpp .C .cxx .cc3不再使用C中的头文件,将xxx.h替换为cxxx,取消.h后缀; C++头文件所在位置: /usr/include/C++/4.1.1/4 C++风格输出使用cin/原创 2014-02-28 08:14:35 · 806 阅读 · 0 评论 -
[C++_4]static_const_mutable
7 静态成员变量,函数静态成员不属于某个对象,只是属于一个类,也不能被this调用;适用于:变量,方法被某一类通用,而不是单个对象。例如静态变量作类实例计数器,工具类 8 类方法constconst void print(bool newline=true); //返回值是只读的 void print(bool newline=true)const; //常原创 2014-03-01 10:22:38 · 421 阅读 · 0 评论 -
[C++_2]结构及函数指针&重载&内联
2 结构指针(意义?)通过成员指针(相对地址)访问结构成员:结构变量.*成员指针 结构指针->*成员指针#include#includeenum gender{F,M};using namespace std;struct Person{ string name; int age; gender g; void printmem(){cout << "Name:"原创 2014-02-28 08:25:41 · 513 阅读 · 0 评论 -
[C++_5]友元_临时对象
10 友元通过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限;如果想在类外访问类的私有成员变量,可以有两种方法: 1.使用int getn()const { return n; } //n是成员变量 2.使用友元函数11 临时对象 如果对象变量只用到一次,就直接用匿名对象,编译器可以对匿名对象进行优化,减少对象的创建,提高效率。原创 2014-03-01 20:27:58 · 424 阅读 · 0 评论 -
[C++_3]构造函数&析构函数&this
6 构造函数构造函数作用:分配空间,初始化变量。实例的对象在初始化时只保证实参传递到构造函数里面,不保证传到成员变量里,所以在构造函数里要手动把实参赋值给成员变量 ;构造函数可以重载;自动调用;可以有默认值,如果没有系统可以自动给构造一个,但是不提供复制操作; 只执行一次;一般来初始化成员;只要自己定义了构造函数,编译器不再产生构造函数。注意:构造无参对象时不要使用Class name()原创 2014-02-28 15:51:02 · 708 阅读 · 2 评论 -
[C++_8]继承_2
13.4 多重继承与虚继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:pu原创 2014-03-03 11:50:42 · 391 阅读 · 0 评论 -
[C++_7]继承_1
13 继承13.1 继承与访问权限继承方式对子类内部没啥影响,对外界有影响父类公开成员父类保护成员父类私有成员公开继承子类内部可访问(公开属性)可访问(保护属性)不可访问外界可访问不可访问原创 2014-03-02 21:17:06 · 398 阅读 · 0 评论 -
[C++_9]多态_虚函数(表)_纯虚函数
14 多态&虚函数 用基类的指针指向子类的对象,然后通过基类的指针调用实际子类的成员函数,虚函数使基类的指针具有了多态性,这是一种泛型技术,泛型技术就是试图用不变的代码来实现可变的算法。 继承的时候虚函数也会被继承,尽管会被继承,但是还是要养成子类的同名函数也要写上virtual,这样显得直观。 在构造函数和析构函数调用虚函数的时候没有多态,因为子原创 2014-03-03 18:27:51 · 547 阅读 · 0 评论 -
[Linux高级编程] Makefile简化版
1 语法目标名:依赖目标 @命令 @命令 make的命令行使用 make -f make脚本文件 目标名原创 2014-05-12 16:14:18 · 1068 阅读 · 0 评论