自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 类中数据成员的声明与初始化总结

转自牛客网平凡的coder同学的评论在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样class A{ private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外初始化,不必再加static关键字 为什么?因为静态成员属于整个类,而不属于某个对象,如果在

2018-02-05 10:09:42 1227

转载 老司机找bug的十年心路历程

一.码畜:靠编译器帮自己查语法错误消灭笔误:编写适合程序员的键盘练习if (常量==变量或表达式)使用goto接力超长的if,switch连续的if还是if elseif多个条件的组合:精心的排版多重括号的匹配条件编译各种const:不要纠结各种常量了,这个世界上唯一不变的就是变化。用APIWriteProcessMemory还能修改正运行的其它进程的内存里面的所谓

2017-07-31 19:42:18 315

转载 C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即类名>::静态成员名>。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来

2017-07-31 19:19:52 306

原创 Boolan C++设计模式 第三周笔记

23种设计模式“对象性能”模式面向对象很好的解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。典型模式SingletonFlyweight

2017-07-16 22:01:36 605

转载 堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。   2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是

2017-07-09 16:08:00 249

原创 Boolan C++设计模式 第二周笔记

23种设计模式“对象创建”模式通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式:Factory MethodAbstract FactoryPrototypeBuilder6. Factory Method工厂方法模式定义定义一个用于

2017-07-06 22:37:01 441

原创 Boolan C++设计模式 第一周笔记

1.什么是设计模式“每一个描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案。这样,你就能一次又一次地使用该方案而不必做重复劳动”。——Christopher Alexander设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可

2017-06-29 22:12:43 586

原创 Boolan STL与泛型编程 第五周笔记

1.一个万用的hash function在之前的课程中,我们知道以Hash Table为底层的容器过程(如unordered_map),在使用过程中,必须要有一个hash function来为每一个元素生成一个hash code作为元素在哈希表中的key,也就是元素在哈希表中的具体位置。对于一些build-in类型(比如字符串),标准库自带hash function,但是对于自定义

2017-06-22 22:22:42 433

转载 C++11异常处理 noexcept

1.简介在C语言中,如果程序的运行出现异常、错误,我们想提供方案处理这些异常时,我们面临许多问题,如:(1)c语言没有提供统一(标准)的方式来处理错误;(2)无法保证错误会被正确的处理; (3)错误的传播无法控制,特别是在函数的嵌套调用时; … …当程序在运行时发生错误,使得程序的继续运行变得毫无意义时,C++中的异常机制给我们提供了一个解决方法。2.C++03

2017-06-17 21:05:44 1324

转载 #pragma warning(push, 3)等3句话是干什么的

在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。一 message参数。 它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:      #pragma message("消息文本")  当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。  当我们在

2017-06-17 17:30:39 646

转载 #pragma once与#ifndef两种防止头文件二次编译的区别

在最开始接触到C语言的时候,看到很多大牛们写的代码里面就有#ifndef  #define #endif 这三条语句,当时不明白什么意思,慢慢的后来自己也开始用了,也知道了他们合起来使用时为了防止头文件被二次编译,因为我们曾经写代码的过程中一定遇到过等类似的错误吧。到了学习C++的时候,我们老师给我们看他的代码的时候发现他的头文件里用的是#pragma once,就奇怪这是什么呢?然后私下百度

2017-06-17 15:55:02 325

原创 Boolan STL与泛型编程 第四周笔记

文中的1.3iterator_category对算法的影响参考What & How & Why同学的笔记STL六大部件从语言层面讲:容器Container是个class template算法Algorithm是个function template迭代器Iterator是个class template仿函数Functors是个class template适配器Adap

2017-06-15 22:56:48 380

原创 Boolan STL与泛型编程 第三周笔记

1.容器dequedeque是一种分段连续的容器,特点是双向开口,可以认为它是一段连续的内存空间,不仅可以向前方增加内存空间,也可以向后方增加内存空间。在实际内存中实现双向扩充是比较复杂的事情,那么deque中是如何实现的呢?deque通过一个控制器来串联一系列的缓冲器(buffer),从而达到逻辑上的连续效果。deque的内存管理示意图,如下图所示:

2017-06-08 21:06:31 400

原创 Boolan STL与泛型编程 第二周笔记

1.源代码分布标准库STL的文件位置,与所采用的编译器有关:(1)Visual C++:...\include   (例如 D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include)(2)GNU C++:...\4.9.2\inlcude 2.OOP(Object-Oriented programm

2017-06-01 22:53:33 433

原创 Boolan STL与泛型编程 第一周笔记

1.C++标准库和STLC++标准库以header files形式呈现:(1)C++标准库的header files不带副档名(.h),例如#include (2)新式C header files 不带副档名.h,例如#include(3)旧式C header files (带有副档名.h)仍然可用,例如#include (4)新式headers内的组件封装于names

2017-05-25 21:04:16 637

原创 Boolan C++面向对象高级编程(下)第五周笔记

在讨论虚指针和虚函数表之前,我想由动态联编和静态联编引入前面这个话题。

2017-05-18 20:53:42 451

原创 Boolan C++面向对象高级编程(下)第四周笔记

Boolan极客班C++开发工程师笔记。1.conversion function(转换函数)对于系统的预定义基本类型数据,C++提供了隐式类型转换和显式类型转换两种类型转换方式:int a=1,sum=0;double b=1.111;sum=a+b; //隐式转换sum=(int)(a+b); //显式转换sum=int(a+b);

2017-05-11 21:59:51 507

原创 Boolan C++面向对象高级编程(上)第三周笔记

11.组合和继承面向对象:类与类之间的关系,分为三种:Inheritance(继承)、Composition(组合)、Delegation(委托)(1)Composition组合,表示has-a关系class queue 里面有class deque上面这张图包含一种设计模式:Adapter(适配)含义如下:已经有deque,但客户需要queue,而deque的功能

2017-05-04 20:53:05 466

原创 Boolan C++面向对象高级编程(上)第二周笔记

7.Big Three:拷贝构造,拷贝赋值,析构(1)什么时候需要自己写拷贝构造和拷贝赋值函数当编译器提供的默认拷贝构造和拷贝赋值函数不再满足要求的时候,比方说类里面带指针,必须自己写拷贝构造和拷贝赋值函数;String(const String& str);String& operator=(const String& str);如果不这么做,会怎么样?如图

2017-04-26 19:52:33 391

原创 Boolan C++面向对象高级编程(上)第一周作业

作业要求:为Date类实现如下成员:1. 构造器,可以初始化年、月、日。2. 大于、小于、等于(> 、3. print() 打印出类似 2015-10-1 这样的格式。然后创建两个全局函数:1. 第1个函数 CreatePoints生成10个随机的Date,并以数组形式返回;2. 第2个函数 Sort 对第1个函数Create

2017-04-19 10:20:49 512

原创 Boolan C++面向对象高级编程(上)第一周笔记

本笔记仅供自己以后复习使用,记录以前没接触过或者对自己有启发的知识点,并做一定的思考与拓展1.C++编程简介主要介绍C++的发展历史,这个以前自己就看过,因此不再赘述。2.头文件与类的声明头文件为防止重复声明,头文件的防卫式声明格式如下:#ifndef _COMPLEX_#define _COMPLEX_...//一些声明语句#endi

2017-04-18 21:34:21 519

原创 字符串输入函数scanf,cin,cin.getline,gets,getline

字符串输入函数在学习C/C++过程中对字符串的输入问题做一个总结,方便以后查阅。1.用scanf读入字符串(注意数组越界问题)用scanf可以将字符串读入字符数组;scanf会自动添加结尾的‘\0’;scanf读入到空格为止; char line[100]; scanf("%s", line);//注意,不是&line printf("%s", line);

2017-03-23 13:06:58 720

原创 POJ Pell数列

POJ Pell数列描述Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an − 1 + an - 2 (n > 2)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k 输出n行,每行输出对应一个输入。输出

2017-03-01 12:20:10 1132

原创 POJ校门外的树

描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域

2017-02-28 09:59:05 691

原创 POJ计算鞍点

描述给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。11 3 5 6 912 4 7 8 1010 5 6 9 118 6 4 7 215 10 11 20 25输入输入包含一个5行

2017-02-28 09:37:21 8662

原创 POJ矩阵转置

描述输入一个n行m列的矩阵A,输出它的转置AT。输入第一行包含两个整数n和m,表示矩阵A的行数和列数。1 接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。输出m行,每行n个整数,为矩阵A的转置。相邻两个整数之间用单个空格隔开。样例输入3 31 2 34 5 67 8 9样例输出

2017-02-28 09:15:25 2907

原创 POJ图像模糊处理

描述给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1. 四周最外侧的像素点灰度值不变;2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔

2017-02-28 09:13:24 2719 2

原创 POJ数字统计

描述请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。输入输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。输出输出共 1 行,表示数字 2 出现的次数。样例输入

2017-02-25 15:16:21 396

原创 POJ正常血压

描述监护室每小时测量一次病人的血压,若收缩压在90 - 140之间并且舒张压在60 - 90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。输入第一行为一个正整数n,n 其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压,中间以一个空格分隔。输出输出仅一行,血压连续正常的最长小时数。样例输入41

2017-02-25 15:13:27 1657 1

原创 POJ雇佣兵

描述雇佣兵的体力最大值为M,初始体力值为0、战斗力为N、拥有X个能量元素。当雇佣兵的体力值恰好为M时,才可以参加一个为期M天的战斗期,战斗期结束体力值将为0。在同一个战斗期内,雇佣兵每连续战斗n天,战斗力就会上升1点,n为当前战斗期开始时的战斗力。一个战斗期结束后,雇佣兵需要用若干个能量元素使其体力恢复到最大值M,从而参加下一个战斗期。每个能量元素恢复的体力值不超过当前的战

2017-02-25 14:03:42 842

原创 POJ角谷猜想

描述所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。 程序要求输入一个整数,将经过处理得到1的过程输出来。输入一个正整数N(N 输出从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果

2017-02-24 19:10:31 496

原创 POJ数字反转

描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。输出输出共 1 行,一个整数,表示反转后的新数。样例输入样例 #1:123样例 #2:

2017-02-24 19:04:57 425

原创 POJ求特殊自然数

描述一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。输入无。输出三行:第一行是此自然数的十进制表示;第一行是此自然数的七进制表示;第一行是此自然数的九进制表示;#include using namespace std;int main() { int i;

2017-02-24 18:52:35 2695

空空如也

空空如也

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

TA关注的人

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