自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (5)
  • 收藏
  • 关注

原创 代码分析工具

#include #include #include #include #include #include #include #include #define LEN 6#define END ";"#define COL 28#define ROW 49#d

2011-07-04 14:27:36 1211

原创 复杂声明分析

#include #include #include #include #include #include #include #include #define END ";"#define COL 17#define ROW 22#define ACCEPT "ac"using namespace std;//注意事项://1.只支

2011-06-24 16:37:00 943

原创 桌面计算器 ,可计算导数

本计算器采用LR分析,可支持CMATH.H库里的大部分运算,并且支持导数运算 #include #include #include #include #include #include #include #include #define END "$"#define COL 11#define ROW 20#define ACCEPT "a

2011-06-15 15:05:00 4684 3

转载 找s2在s1中第一次出现的位置

<br />constchar* strstr(constchar* s1,constchar* s2)//找s2在s1中第一次出现的位置,<br />{<br />    assert(s2&&s1);<br />    constchar* p = s1,*r = s2;<br />    while (*p!='/0')<br />    {<br />        while (*p+===*r++);<br />        if (*r=='/0')<br />        {<br />

2011-03-01 16:03:00 1837

原创 词法分析系统(C语言版)

<br />头文件。。。。<br />#ifndef dfanfa_h#define dfanfa_h#include <stdio.h>#include <stdlib.h>#include <string.h>/*定义特殊值*/ #define BUF_SIZE 4096 //定义每行读取最大字节数 #define EXPRESSION_SIZE 1024 //定义表达式最大长度

2010-12-16 08:37:00 1195 3

转载 不比较求最大值和最小值

<br />max: (a+b + abs(a-b))/2<br />min: (a+b - abs(a-b))/2

2010-09-09 16:18:00 769 1

原创 模拟加法器

<br />#include <stdio.h>int addone(int t){ int w=1; while(1) { if(w&t) t&=~w; else { t|=w; break; } w<<=1; } return t;} int add(i

2010-09-03 16:56:00 1644

原创 日期间相差的天数

<br />#include <iostream>#include <stdexcept>#include <ctime>using namespace std;class Date{ private: unsigned year; unsigned month; unsigned day; unsigned days;

2010-09-03 16:50:00 628

原创 根据日期求天数

<br />#include <iostream>#include <stdexcept>#include <ctime>using namespace std;class Date{ private: unsigned year; unsigned month; unsigned day; unsigned days;

2010-06-22 15:50:00 871

转载 有关C++中的 placement new

<br />placement new的含义<br />placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被替换)。<br /><br />void *operator new( size_t, void *p ) throw()     { return p; }<br /><br />placement new的执行忽略了size_t参数,只返还第二个参数。其结果是

2010-06-12 17:31:00 788 1

原创 c++ new 重载

当写出<br />p = new P();<br />这样的代码的时候, 实际上有两步操作, 首先分配内存,<br />然后在分配好的内存之上初始化类成员.<br /><br />第二步是有构造函数完成的, 第一步就是new函数的工作.<br /><br />全局的new有六种重载形式, <br />void *operator new(std::size_t count)<br />    throw(std::bad_alloc);             //一般的版本<br /><br />void

2010-06-09 16:59:00 874

转载 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast

<br />C 风格(C-style)强制转型如下:<br />(T) exdivssion // cast exdivssion to be of type T<br />函数风格(Function-style)强制转型使用这样的语法:<br />T(exdivssion) // cast exdivssion to be of type T<br /> <br />这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。<br />使用

2010-06-09 16:03:00 471

转载 CUJ:标准库:Allocator能做什么?

<br />The Standard Librarian: What Are Allocators Good For? <br /> <br />Matt Austern <br /> <br />http://www.cuj.com/experts/1812/austern.htm?topic=experts <br /> <br />--------------------------------------------------------------------------------<br />

2010-06-08 22:14:00 552

转载 auto_ptr和operator new

<br />#include <memory><br />#include <iostream><br />#include <cstddef><br />using namespace std;<br />class TraceHeap {<br />  int i;<br />public:<br />  static void* operator new(size_t siz) {<br />    void* p = ::operator new(siz);<br />    cout << "Al

2010-06-08 15:25:00 497

转载 拨开自定义operator new与operator delete的迷雾

<br />C++里允许用户通过自定义operator new的方式来更改new表达式的行为,这给了程序员定制内存管理方案的自由。但是享受这种自由的时候必须遵守一定的规范,具体可以参见《Effective C++ 2nd》的相关条款。本文补充解释一些特别容易引起误解的问题。<br />    operator new和operator delete都有其正规形式(normal signature):<br />void* operator new(size_t size);<br />void operat

2010-06-08 15:09:00 571

原创 类模板中的友元声明和定义

普通友元:FooBar的成员和fcn函数可以访问Bar类的任意实例的private成员和protected成员模板友元类FooBar#include using namespace std;template class Bar{ friend class FooBar; Type pri;};class FooBar{ public: template void foofcn(const Bar& b);

2010-06-04 15:10:00 4650 2

转载 判断闰年

<br />printf(a%(a%100?4:400)?"NO":"YES");<br /> <br />(0 == n %400) || ((0 == n%4) && (0 != n%100))

2010-06-04 08:26:00 667

原创 几种模板友元的声明

<br />#include <iostream>using namespace std;/*友元模板函数在类的内部声明,可以实例化多次,因为每次实例化都会生成相应的版本*/ template<class Type>class Bar{ template<class T> friend class Foo; friend ostream& operator << (ostream& os,const Bar<Type> &b) {return os<<b.

2010-06-02 18:21:00 581

转载 C++中catch(…)如何使用

C++异常处理模型的trycatch使用语法,其中catch关键字是用来定义catch block的,它后面带一个参数,用来与异常对象的数据类型进行匹配。注意catch关键字只能定义一个参数,因此每个catch block只能是一种数据类型的异常对象的错误处理模块。如果要想使一个catch block能抓获多种数据类型的异常对象的话,怎么办?C++标准中定义了一种特殊的catch用法,那就是” catch(…)”。<br />感性认识<br /><br />  1、catch(…)到底是一个什么样的东东

2010-06-01 16:35:00 1298

原创 打印二叉树形结构

<br />#include <stdio.h>/*treeview打印二叉树型结构,d1为每行前面的空格数,d2为元素间的空格数n为每次打印的元素每层的前面空格数等于它下一层的中间空格数最多可打印6层*/ void treeview(int d1,int d2,int n){ int i,j=1,k,count=1; if(n>0) { treeview(d2,d2*2+1,n-1);//每层递归前面空格数和中间空格数的关

2010-06-01 15:09:00 5038

转载 大小端模式

<br />所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; <br />  所谓的小端模式,是指数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。 <br />  为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以

2010-05-31 15:21:00 467

转载 Sutter's Mill: Befriending Templates

Lets say we have a function template that does SomethingPrivate() to the objects it operates on. In particular, consider the boost::checked_delete() function template, which deletes the object its g

2010-05-31 10:03:00 833

转载 模板友元化

摘要:     如何将一个函数模板的特化声明为友元呢?标准C++给你提供了两种合法的语法。然而,事实上,对于其中的一种语法,几乎没有编译器对其给予支持;而对于另一种,当前所有主流编译器(除了一款以外)都对其提供了支持。     假设我们有一个函数模板,可以调用其所操作的对象的SomethingPrivate()方法。特别地,考虑boost::checked_delete()函数模板,它用以

2010-05-31 09:38:00 678

转载 直接调用类成员函数地址

一、成员函数指针的用法  在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而"->*"和".*"用来调用指针指向的函数。比如:  class tt  {  publi

2010-05-27 15:07:00 536

转载 if宏

这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。     条件编译命令最常见的形式为:     #ifdef 标识符     程序段1     #else     程序段2     #endi

2010-05-26 16:08:00 2115 1

原创 排列组合问题

排列组合的基本理论和公式 排列与元素的顺序有关,组合与顺序无关.如231与213是两个排列,2+3+1的和与2+1+3的和是一个组合.   (一)两个基本原理是排列和组合的基础   (1)加法原理:做一件事,完成它可以有n类办法,在第一类办法中有m1种不同的方法,在第二类办法中有m2种不同的方法,……,在第n类办法中有mn种不同的方法,那么完成这件事共有N=m1+m2+m3+…+m

2010-05-26 10:36:00 952

原创 删除代码中的注释

测试代码 /*rtyr*/#include using namespace std;/*class A{ public: static int init() {return 22;}};*/namespace A/*""sdfgse*/{ int init() {return 22;}}

2010-05-24 09:50:00 1163

转载 成员函数的重载、覆盖与隐藏

重载与覆盖     成员函数被重载的特征:     (1)相同的范围(在同一个类中);     (2)函数名字相同;     (3)参数不同;     (4)virtual关键字可有可无。     覆盖是指派生类函数覆盖基类函数,特征是:     (1)不同的范围(分别位于派生类与基类);     (2)函数名字相同;     (3)参数相同;     (4)基类函数必须有virtual关键字。

2010-05-21 09:40:00 480

原创 解析浮点数内存

#include #include #define N 23//N为要取得小数点后的位数 #define M 64using namespace std;/*float_str打印浮点数的内存形式*/ char* float_str(float *f){ unsigned int sign,base,exp,t=*(unsigned int*)f;

2010-05-21 08:26:00 846

转载 argv[0] 使用方法

我们对C语言中main函数这样的写法应该不会陌生:int main(int argc, char *argv[]){......}这是UNIX和Linux中的标准写法。int argc, char *argv[] 表示程序运行的环境变量。int argc表示环境变量的个数,char *argv[] 为存储具体环境变量的字符串指针数组。使用命令行窗口运行程序时,为程序输入多个参数,程序可以调用多

2010-05-20 11:31:00 24563 1

转载 STL容器 算法 函数表

该篇分为十一部分,分别是:vector类的主要成员、deque类的主要成员、list类的主要成员、stack类的主要成员、queue类的主要成员、priority_queue类的组要成员、set类的主要成员、multiset类的主要成员、map类的主要成员、multimap类的主要成员、STL算法函数(一)vector类的主要成员vector是可边长的向量,比较灵活☆ value_type;//对

2010-05-17 15:17:00 725

原创 继承与访问权限

#include using namespace std;class A{ public: friend class Afnd;//A的友元类 virtual void vfun() {cout<<"A::vfun()"<<endl;}//虚函数vfun void callvfn(A& a) { a.vprifun();}//A的内部函数

2010-05-17 10:01:00 656

原创 构造随机数列

#include iostream>#include ctime>using namespace std;void sum(unsigned n,unsigned m)//构造和为n,长度为m的数列{    if(m==0||n0)     {        coutnendl;        return;    }    unsigned t=(rand()%((unsigned)(n/m

2010-05-13 16:13:00 641

转载 cout的输出格式

必须#include 先。 相关functions:long flags( ) const 返回当前的格式标志。 long flays(long newflag) 设置格式标志为newflag,返回旧的格式标志。 long setf(long bits) 设置指定的格式标志位,返回旧的格式标志。 long setf(long bits,long field)将field指定的格式标志位

2010-05-13 09:04:00 2114

转载 指针左右原则

C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Start reading th

2010-05-13 07:55:00 1265 1

转载 C++ 语言特性的性能分析

引言本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化的方法和实例。全书由 4 个篇组成,第 1 篇介绍 C++ 语言的对象模型,该篇是优化 C++ 程序的基础;第 2 篇主要针对如何优化 C++ 程序的内存使用;第 3 篇介绍如何优化程序的启动性能;第 4 篇介绍了三类性能优化工具,即内存分析工具、性能分析工具和 I/O 检测工具,它们是测量程序性能的利器。本章从

2010-05-11 20:23:00 565

转载 各种容器特点总结

Vector1.       内部数据结构:连续存储,例如数组。2.       随机访问每个元素,所需要的时间为常量。3.       在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。4.       可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。5.       迭代器失效插

2010-05-11 17:08:00 889

转载 struct tm 和 time_t

struct tm 和 time_t2009-10-19 12:43关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的

2010-05-11 15:06:00 513

转载 标准I/O库函数

2.1. 文件的基本概念 请点评我们已经多次用到了文件,例如源文件、目标文件、可执行文件、库文件等,现在学习如何用C标准库对文件进行读写操作,对文件的读写也属于I/O操作的一种,本节介绍的大部分函数在头文件stdio.h中声明,称为标准I/O库函数。文件可分为文本文件(Text File)和二进制文件(Binary File)两种,源文件是文本文件,而目标文件、

2010-05-11 09:08:00 1582

转载 关于流和缓冲区的理解以及一般标准输入问题的解决方法小结

先看两个问题(以下程序运行环境为WIN2000+DEV-C++4.9.9.2): 1、执行以下程序:/*****************************************************  Name:            copy_bar.c  Copyright:      kernelxu  Author:           kernelxu  D

2010-05-11 08:55:00 1484 1

用C写的 贪吃蛇

用C语言写的,VC编译,欢迎试玩,附源码,有问题请指教

2012-02-17

代码分析工具,分析代码使用的变量

代码分析工具,分析代码使用的变量,用C++写的,目前只是个雏形,功能上也比较简单,仅能分析其中的变量,可能还存在些问题,有待改进。

2011-07-04

桌面计算器 导数计算

桌面计算器 可计算导数,支持大部分数学运算,加减乘除、乘方、对数、和三角函数、双曲三角函数的运算

2011-06-15

词法分析系统及代码(C语言)

我自己用C语言写的词法分析工具 代码有两个文件,一个头文件,一个实现文件 还有一个EXE文件 当然可以自己用代码编译

2010-12-15

词法分析系统(有限自动机,DFA,NFA)

我自己用C语言写的一个词法分析系统,实现了下面几个功能正则式转化为NFA、NFA转化为DFA、NFA化简、NFA模拟、DFA模拟 如你在使用中有什么问题,请联系我QQ:75732861

2010-12-13

空空如也

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

TA关注的人

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