自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 UML中的关系

UML中的关系1、依赖(dependency)ProductWorker--->Math表示ProductWorker依赖于Math从层次结构来看,这两个类是属于同一层的 依赖关系主要表现为方法的参数,静态方法的调用public class ProductWorker{ private double baseSalary; private int piece;

2015-06-16 08:58:16 573

原创 向对象的的基本特征:抽象,封装,继承,多态

抽象: 抽象就是提取出事物之间的共性,即个体所属的类别的共有属性和方法。 比如我们要设计一个ArrayList容器,它的底层是用数组实现,并且能够实现当容量不足时,申请一个更大的数组,将原数组的内容复制过去。 首先,分析出ArrayList是属于容器,那么我们要抽象出容器的共性。 即一个Collection接口,然后再让ArrayList类继承这个接口,即类的实现要依赖

2015-06-15 13:49:54 767

原创 农大oj之1003解题报告

数字接龙本来想用枚举法,生成所有的

2014-04-26 10:02:56 903

原创 高精度除法

高精度除法是4则运算中最难的了。但是只要解决了高精度除法,那么高精度

2014-04-07 11:03:09 3353 2

原创 防止指针悬挂的方法

为了解决指针悬挂这个问题有下面两种方法1、使用智能指针(看了C++primer才知道的)2、在拷贝构造函数和赋值操作符中为左操作数重新分配资源,然后复制内容(即使用深拷贝)智能指针是让多个对象的指针指向一个空间,共享这一空间(共享也是有坏处的)智能指针是使用一个计数器,当该计数器为0时才会释放指针指向的内存每次创建新类的对象时

2014-03-29 16:40:24 1062

原创 为什么赋值运算符要防止自身赋值

为什么赋值运算符要防止自身赋值呢??如果类里面含有指针指向动态分配的资源的话,那么自身赋值就可能出错有可能导致把自己给释放了如下面:#include#include#includeusing namespace std;class A{public:    char *ptr;    A(){ptr = nullptr

2014-03-29 15:41:41 2373 1

原创 读书笔记——继承

继承分为三种:public    private    protected不管何种继承,派送类都不能直接访问基类的private成员,必须通过接口访问不管何种继承,派生类都能直接访问基类的protected成员,但是派生类对象就不能直接访问基类的protected成员不管何种继承,派生类都能直接访问基类的public成员,但是只有public继承才能使派生类对象直接访问基类

2014-03-27 16:18:02 511

原创 字符串处理--HDU第2609解题报告

题目链接这题本来不明白是什么意思,还以为是每个串的数字加起来,如果相等就表明是相等的串,但原来不来。而是--》如果两个串是同构串,那么这两个串相等,为一个相同的串,我们就是要找出给出的数据中有多少不同的串。这就要用找最小表示法了,如果两个串是同构串,那么这两个串的最小表示S1 == S2http://blog.csdn.net/u012501262/article/deta

2014-03-23 08:51:38 581

原创 最小表示法

最小表示法就是找出字符串S的的循环同构串中字典序最小的一个。那么什么是循环同构串呢。--设S=bcad,且S’是S的循环同构的串。S’可以是bcad或者cadb,adbc,dbca即在字符串S中从i>=0开始,从i循环到字符串末尾,再从头循环到i,所形成的字符就是S循环同构串。因为这样的同构串不止一个,所以我们要找出其中字典序最小的一个(即字符串从小到大排序,其中最小的

2014-03-23 08:25:00 1206 2

原创 字典树

因为做题的需要,花了点时间学了字典树。原来字典树是那么的简单,我还以为很难呢。在我看来,字典树就是为了方便查找。从下面篇博客就能知道为什么在我看来字典树就是为了查找。http://blog.csdn.net/u012501262/article/details/21695033http://blog.csdn.net/u012501262/article/details/2

2014-03-21 16:29:03 538

原创 字符串处理--HDU第1251解题报告

题目链接这题目,如果单单接收数据,然后一个个比较的话,肯定是会超时的。所以要用字典树或者map容器,由于还没有学会字典树,所以采用map容器。那该怎么使用呢?将每个单词的所有前缀都作为键,前缀的个数作为值,存入map容器map[s1]+=1;如果容器中无前缀则为1,如果有,则在基础上+1然后,就可以直接用第二部分的字符串数据当作下标来访问容器,返回值就是以该字符串为

2014-03-21 12:12:49 634

原创 字符串处理--HDU第1131解题报告

题目链接题目有两部分的输入,第一部分是字典第二部分是打乱顺序的单词。我们要做的是从字典中找到能能形成 “打乱顺序的单词  “的单词。然后依照字典顺序输出。那么这么样才能判断字典中的单词能形成“打乱顺序的单词  “呢?只要对两个单词进行排序,然后比较是否相等,就能知道了。字典的存储采用map容器。下面是代码:#include#include#i

2014-03-20 22:49:47 518

原创 字符串处理--HDU第1075解题报告

题目链接该题目最初的想法是将没一行的字典数据用string接收,然后存入vector数组中。然后题目的问题只变成了从vector的每个元素中查找火星人说的话,然后用英语替代。可是写完后,时间顿时报表。原来是搜索占据了太大的时间。下面是超时代码:#include#include#include#includeusing namespace std;void t

2014-03-19 21:19:20 611

原创 字符串处理--HDU第1073解题报告

题目链接该题最关键的是如何接收数据,想不明白之前,感觉这题真TM难,可想明白之后,。。。好了。下面是思路:用string类接收START之后,END之前的字符串,并存入容器中。然后用==比较容器,如果相等,即数据一模一样,则AC否则,将容器中的字符连起来,形成一个长字符,然后去除格式之后再比较string的大小如果相等,则PE,否则WA。千辛万苦终AC

2014-03-18 21:58:40 580

原创 字符串处理--HDU第1062解题报告

题目链接思想很简单,接收字符串,然后写个函数,遍历字符串,遇到空格或者遇到串为就逆序输出。下面是代码:#include#include#includeusing namespace std;void output_the_right_string(string str);int main(){ string str; int n;

2014-03-18 15:56:38 587

原创 字符串处理--HDU第1039解题报告

题目链接要满足三个条件,所以最好一点写成一个函数,这样做就不会像全部代码都在main()函数中写一样,要考虑很多细节。这三个函数都很简单。(我再也不用划译了,条件二给翻译错了,哎,加强英语吧)下面是代码:#include#includeusing namespace std;bool rule_one(string &str);bool rule_two(s

2014-03-17 17:43:22 460

原创 字符串处理--HDU第1020题解题报告

题目链接首先想到是是用string类来做,但是string类好像不支持sprintf函数,所以改用C语言中的字符串来处理。至于为什么要用sprinf,等下解释。该题的思路是找出相邻相等的字符,然后统计个数,把个数写进字符串中,然后删除多余的字符,但是删除麻烦,就用惰性删除的方法(不知道在哪看到的这个名词)如果相同字符的个数小于10时,可以直接赋值写进字符串 str[in

2014-03-17 13:02:42 623

转载 while(cin>>a)的原理

>>运算符返回的是流对象的引用,那么题目就变成了 while(cin);   这好像有点奇怪,上网找了答案这是地址http://tech.ddvip.com/2013-11/1385568597206484.html

2014-03-07 07:41:24 2590

原创 构造函数与初始化列表是不同的

今天在《C++ prime》(真是一本好书啊,刚买来看,就学到了不少东西,果然学编程是幸福的,有那么多好书可以看)中看到了初始化列表和构造函数的不同之处。它们的不同之处在于--初始化列表是真正的初始化 ---相当于int a = 10;而构造函数的函数体中的初始化(应该不能叫做初始化了)只是赋值而已 ---相当于   int a; a = 10;这些不同是可以在其他C++书

2014-03-06 16:11:21 639

原创 关于相互依赖的类,如何不报错

名词:--声明:  class A;只声明而不在此处定义,告诉编译器有这个类型,那么你就可以使用这个类型了,但这个类型的使用是受限的(在定义之前的使用)不完全类型:上面的类型就是不完全类型,该类型只能用来定义指向该类型的指针或则引用。在创建类的对象之前,必须完整地定义该类,同样在使用指针或者引用访问该类成员时,必须已经定义了类。#includeusin

2014-03-06 15:22:18 660

原创 C/C++ACM入门之输入函数格式控制

C的输入函数scanf比C++的输入含税cin快多了,所以在进行大规模数据录入的时候,一般是使用scanf 关键字: 空白:包括space Tab Enter 扫描前导空白:即扫描缓冲区中的空格,并丢弃 C输入函数 scanf 、gets、 fgets 、getchar() scanf(只介绍格式控制符是 %c、%s的情况) 

2014-03-05 20:00:10 743

原创 三种继承

/*protected与继承的关系如果类中有protected,如果该类没有被继承,那么protected成员相当于private成员如果该类被继承,那么基类中的protected成员对派生类可见,对对象不可见 */私有继承#includeusing namespace std;class base{private:    int x

2014-02-22 20:30:14 468

原创 关于const与临时变量与函数返回值

c++中函数的返回值是存储在临时变量中的下面是个实验如图,func2函数建立的引用不是func1形参x的引用,而是临时变量的引用(这个引用比指针好用,因为你无法取得临时变量的地址,所以无法建立指向临时变量的指针)所以说函数的返回值是存储在临时变量中的const与函数返回值的类型有什么关系呢?c++默认函数的返回值是const型看下面:cons

2014-02-20 16:12:17 1104

原创 关于引用形参的解释

void swap(int & x,int &y){    int temp = x;    x = y;    y = temp;}可调用函数swap(first,secord);//交换两个数字的值其实函数被翻译为void swap(int *x,int *y){    int

2014-02-19 15:03:57 750

原创 C++对象

学完C,学C++时,完全搞不清楚对象是什么。什么对象,什么程序是由对象+数据结构组成的。完全摸不着头脑。但当我发现,只要把程序看成是一个世界,那么程序是由一个个对象构成就很容易理解了。对象有属性和功能。如一个游戏世界,怪物是一个对象,角色也是一个对象。怪物和角色都有血量、攻击力、防御力等等...角色的功能是攻击,怪物的收到攻击就会掉血,这就是怪物的功能。

2014-02-16 14:10:39 475

空空如也

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

TA关注的人

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