自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CL

靡不有初,鲜克有终

  • 博客(66)
  • 收藏
  • 关注

原创 [项目]文件压缩

文件的压缩和解压缩统计文件中字符出现的次数,利用数据结构堆建造Huffman树,出现次数多的编码短,出现次数少的编码长。根据建造好的Huffman树形成编码,以对文件进行压缩。将文件中出现的字符以及他们出现的次数写入配置文件,以便后续的解压缩。根据配置文件读取相关信息重建Huffman树,对压缩后的文件进行译码。{C

2017-03-08 17:27:45 550 1

原创 C语言点滴积累

写在前面的话:经过一段时间的学习我发现,有很多语法知识我并没有足够的理解,我记得有人曾和我说过,理解语法需要换个角度,如果你作为一个C语言创始人,你会怎么做?举个例子,传参,将数组降价为指针,既节省了空间,又让程序媛在编写程序时方便了许多。所以有些时候换个角度,换种环境去理解。你会深刻的感受到那句话——蓦然回首那人却在灯火阑珊处。。。。预处理执行宏替换,条件编译,包含指定头文件

2017-02-16 10:34:08 349

原创 [数据结构] 时间复杂度的理解

时间复杂度:函数计算之行的基本次数面试tip:面试官问及时间复杂度不一定只有最坏的,一般人一般会直接答最坏的,其实还有最好和平均。例如:在一个长度为N的线性表中搜索一个数据x。最坏:没有找到,到最后才找到平均:不好不坏到中间才找到最好:很开心第一下就找到了,一般必须要关注,但是在哈希的时候会关注官方的说法:最坏情况:任意输入规模的最大运行时间。(上界)平均情况:

2016-11-27 08:00:15 5430

原创 c++到com组件过度(一个实例)

从C++过度到com需要经历的过程:实现接口的引用计数对象允许多个接口类厂对象使用标准IClassFactory接口使用_stdcall调用约定实现DLL动态卸载实现对象自注册

2016-09-20 11:34:21 4289 2

原创 time wait

根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的

2016-07-27 14:48:38 396

转载 [linux]进程 task_struct

进程的概念: 程序运行的一个实例。 担当系统分配资源的一个实例。进程管理 进程控制块 PCB(进程描述) 进程用PCB描述 描述信息包括 进程标示符:pid唯一的标识进程 状态 :退出信号 优先级 :相对于其它进程的优先级 程序计数器 :程序将要执行的下一条指令 内存指针 : 上下文信息 : I/O状态信息 记账信息 保存进程的struct结构体:task_struct进程

2016-06-24 18:51:30 376

原创 [linux]vim配置

vi m

2016-06-24 15:14:07 263

原创 [linux] 进度条

首先需要清楚一个概念回车和换行的区别: 回车:/r 回到本行首位 再输入会覆盖本行原来内容 换行:/n 回到当前位置的下一行 不会回到行首函数的实现 .c文件应改包含函数声明 下面是源码: 下面是Makefile: 结果:

2016-06-24 15:11:37 268

原创 [linux]mkdir touch stat find 指令

mkdir 在想要创建目录的目标路径下你(user)必须具有访问权限,也就是具有写权限 在该目录下再创建目录也有同样要求,不管时root还是普通用户都对应一个权限 创建/删除文件 user必须具有可执行权限(x) 访问时间:读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。 修改时间:对文件内容修改一次,这个时间就

2016-06-21 16:40:35 479

原创 智能指针的发展

通常是经由类模板来实现。借由模板来达成泛型,通常借由类的析构函数来达成自动释放指针所指向的内存或对象。智能指针的最初动机是使得下面的代码更安全,最初使用void foo(){ Type* ptr = new Type[10]; // 对p指向的内存块进行赋值 do_something(); delete[] ptr;}当上面的foo()函数出现异常时:void f

2016-04-25 09:43:39 430

原创 const

const参数: 防止传入函数的参数被改变 参数分为输入型参数和输出型参数,const只能修饰输入型参数 一般的输入型参数采用指针传递,加const可防止意外的改变指针 例如 StringCopy 函数: void StringCopy(char *strDestination, const char *strSource); 其中 strSource 是输入参数,strDestinat

2016-04-14 15:22:10 287

原创 [C++]单例模式

单例模式:保证一个类只创建一个对象。要考虑到线程安全问题 线程安全:在一个对象new的时候,另一个对象如果同时new,会造成创建的对象不是单类的。所以在第一个对象进行开辟空间时要加互斥锁 mutex._Lock(); mutex._Unlock();引入boost库会使代码空间变大。建议使用如下单例模式中的饿汉模式:即:无论是否使用,都在程序开始的时候产生一个实例,并在以后的调用中返回该实例。(

2016-04-14 12:24:52 333

原创 [c++]继承 多态

继承: 是除了基类的构造函数 ,析构函数 全部继承(私有 也可继承 但不可直接访问)继承方法:public: is-a关系 base private 不可访问 public protected 不变protected: base private protected 都不可访问 public 变为 protected注:protected 不能在类外访问,可在

2016-04-09 16:10:23 2070 1

原创 [C++]String类的理解

如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数(浅拷贝)。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。 以类 String 的两个对象 a,b 为例,假设 a.m_data 的内容为“hello”, b.m_data 的内容为“world”。现将a赋给b,缺省赋值函数的“位拷贝”意味着执行b.m_data= a.m_data。 这将造成三个

2016-04-03 20:34:07 540

原创 如何测试一个函数的运行时间

void fun(){ using namespace std; clock_t begin = clock(); //要测试的代码 clock_t end = clock(); double elapsed_secs = double (end - begin) / CLOCKS_PER_SEC; cout<<elapsed_secs<<endl;}

2016-03-28 14:55:13 990 1

原创 顺序表与单链表的比较

顺序表和单链表的优缺点对比: 顺序表的优点,无需为表示表中元素之间的逻辑关系而增加额外的存储空间; 可以快速的存取表中的任意位置的元素。 顺序表的缺点,插入后删除操作需要移动大量元素; 当线性表长度不稳定时,存储空间难确定,容易造成存储空间碎

2016-03-22 20:42:20 1732

原创 C语言单链表——之常见面试题目2

接上篇还是无头节点的:实现的函数声明:// 从头至尾打印单链表void PrintListTailToHead(PSlist pHead);// 链表的非头结点前插入元素datavoid InsertNotHead(PSlist pHead, PSlist pos, Datatype data);// 删除链表的非尾结点void DelNotTailNode(PSlist pos);// 查找

2016-03-22 13:20:00 503 2

原创 C语言实现单链表——之基本操作1

一般面试题中会考虑无头节点的单链表下面是一些实现: 声明Sqlist.h文件#pragma once#include <assert.h>#include <stdio.h>typedef int Datatype;typedef struct SList{ Datatype data; struct SList* next;}SList, *PSlist;//无头结

2016-03-22 13:01:16 471

原创 Fibonacci数列

Fibonacci数列当n非常大时,Fn也非常大,现求Fn处以10007的余数 提示:算出余数即可,不必将Fn的具体值算出#include <iostream>using namespace std;#define MAX 100#define MOD 10007int fib(int n){ int f[MAX]; f[1] = 1; f[2] = 1;

2016-03-03 20:40:46 298

原创 [C++]拷贝构造的玄机

class B{public: B() { cout << "B()" << endl; } ~B() { cout << "~B()" << endl; } B& operator=(const B& rhs) { cout << "B& operator=(const B& rh

2016-01-07 22:56:29 610

原创 【数据结构】顺序栈

Stack.h#pragma once#include<stdlib.h>#include<iostream>using namespace std;#define SIZE 10#define Elemtype int#define StackInit 10typedef struct Sqstack{ Elemtype stack[SIZE]; int top;}

2015-10-20 09:03:37 335

原创 【数据结构】链栈

Lstack.h#pragma once#include<iostream>#include <stdlib.h>using namespace std;#define Elemtype inttypedef struct Nstack{ Elemtype data; Nstack* next;}Node;//节点typedef struct{ Node* t

2015-10-20 08:59:52 297

原创 [项目]注释转换

——C++注释转换为标准C语言注释

编写注释转化程序,实现对一个C/C++语言程序源文件中注释的转换功能 1.C++风格的注释//注释转换为标准C分风格/* */注释 2./* */风格的注释保持原样 3.所有的转换需要符合语法规则 4.注释转换需要支持注释嵌套 注释转化要求: 注释的嵌套情形很多,这里只是举例,你需要遵照C/C++语言的注释规则来编写代码,我不会仅测试这里的例子。 1、单行注释或没有嵌套,注释行直接转

2015-06-25 09:22:43 994

原创 [c++]String字符串类的运算符重载

在c++中有一个新定义的类型string,可以不用那么麻烦的操作字符串,并且一些高级的运算符重载让她的使用更加便捷下面是String类的定义和成员函数的定义:再下面是测试程序:

2015-06-07 12:40:04 16674 10

原创 [c++]复数的运算符重载

类的定义和声明#include#includeusing namespace std;class Complex{ friend istream& operator>>(istream &in, Complex &c); friend ostream& operator<<(ostream &out, const Complex &c); friend Com

2015-06-06 17:15:42 586

原创 [c++]基类对象作为函数参数(赋值兼容规则)

编程处理教师的基本情况。要求:1、定义一个“person”类,用来存储及处理人的姓名、性别、年龄,成员函数自定;2、定义“teacher”类,公有继承“person”类用来存储教师所在学院、所学专业、学历、学位、职称、教龄等,成员函数自定。3、处理程序,主要包括:⑴显示姓名、性别、年龄函数:既能显示person对象的姓名、性别、年龄,又能显示teacher对象的姓名、性别、年龄

2015-06-04 09:00:15 3585

原创 [c++]派生类的应用

在已有的Point类的基础上,定义一个“Circle”派生类,要求:新增一个半径成员;能计算并输出圆的周长及加圆面积      #ifndef __Dervide_circle__circle__#define __Dervide_circle__circle__#includeusing namespace std;#define PI 3.1415926class point

2015-06-03 18:04:00 1267

原创 [c++]对象指针,引用的操作

1.time类保存在“htime.h”中,要求:⑴数据成员包含时(hour)、分(minute)、秒(second),为私有成员;⑵能给数据成员提供值的成员函数(默认值为0时0分0秒);⑶能分别取时、分、秒;⑷能输出时、分、秒(用“:”分隔),并显示上午(am)或下午(pm);⑸有默认值的构造函数(默认值为0时0分0秒)。说明:成员函数均定义为公有成员。

2015-06-03 17:04:15 1175

原创 [c++]抽象类

如果一个类至少有一个纯虚函数,就称该类为抽象类,目的是用它作为基类去建立派生类。规定:1.抽象类中至少包含一个没有定义功能的纯虚函数,因此,抽象类只能作为其他类的基类来使用,不能建立抽象类对象。2.不允许从具体类(不包含纯虚函数)派生抽象类3.不能函数参数类型,函数返回类型4.可以声明指向抽象类的指针或引用,该指针可以指向他的派生类来实现多态5.关键是定义纯虚函数,只有定义

2015-05-15 16:49:56 1031

原创 [c++]运算符重载

complex operator+(complex co1,complex co2)//运算符重载函数{ complex temp; temp.real = co1.real+co2.real; temp.imag = co1.imag+co2.imag; return temp;

2015-05-14 18:43:20 469

原创 [c语言]数据结构 顺序表的实现

首先是main.cpp让我们来看看都有什么函数#include#include"SeqList.h"using namespace std;int main(){ SeqList mylist; InitSeqList(&mylist); int select = 1; ElemType item = 0; ElemType pos

2015-04-25 15:30:31 585

原创 [c++]多继承

多继承格式:class 类名:继承方式1 基类1,继承方式2 基类2,........

2015-04-15 14:53:58 501

原创 [c++]派生类与容器类

#includeusing namespace std;class Base{ int x;public: Base(int a) { x = a;//记得给私有成员赋初值,没有的话会是随机值 cout<<"constructing Base "<<x<<endl; } ~Base() { co

2015-04-15 13:43:18 874

原创 [c++]友元函数

其中有2个类:一个是深圳类shen_stock,一个是上海类shang_stock,类中有3个私有成员:普通股票个数general,ST股票个数st和PT股票个数pt,每个类分别有自己的友元函数来计算并显示深圳或上海的股票总数(3项的和)。两个类还公用一个函数count(),用来计算深圳和上海总共有多少股票并输出#includeusing namespace std;class shen_

2015-04-13 20:45:17 805

原创 [c++]派生类的构造函数和析构函数

#includeusing namespace std;class Base{ float x; float y;public: Base(float a,float b) { x = a; y = b; cout<<"基类构造函数被调用"<<endl; } ~Base() {

2015-04-13 20:16:40 448

原创 [c++]容器类。继承类的构造和析构

#includeusing namespace std;class Base{ int x;public: Base(int a) { x = a; cout<<"father constructing "<<x<<endl; } ~Base() { cout<<"father destruct

2015-04-09 17:34:03 615

原创 [c++]容器类

#include#includeusing namespace std;class string1{private: char *str;public: string1(const char *s) { str = new char[strlen(s) + 1]; strcpy(str,s); cout<<"str

2015-04-09 16:57:32 460

原创 my_strcpy

#includevoid my_strcpy(char* dest,const char* str){ if(NULL != dest || NULL != str) { while(((*dest++) = (*str++)))//注意运算的优先级 { ; } } *dest = '\0';

2015-04-09 16:53:04 796

原创 [c++]怎么样知道析构函数先后的析构顺序

#include#includeusing namespace std;class String_date{private: char * str;public: String_date(char * str); ~String_date(); char* get_infor() {return str;}};String_date::Str

2015-03-28 11:24:28 1325

原创 [c++]cylinder显示每个对象的体积

#includeusing namespace std;#define p 3.1415926class Cylinder{private: double v;public: Cylinder(double r = 0,double h = 0) { v = p * r * r * h; } double vol()

2015-03-28 11:21:43 941

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除