自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pop_Rain的博客

机会往往是长期准备和酝酿的,而不能只靠一时的主动与激情

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 进阶篇_STL中的容器

容器就是STL中的瓶瓶罐罐,就是能够保存其他类型的对象的类,是STL的关键部件之一。STL的容器分为:顺序容器和关联容器1.顺序容器STL中包括三种基本的顺序容器:向量(vector)、线性表(list)、双向队列(deque),基于这三种基本顺序容器,又可以构造出一些专门的容器,用于比较特殊的数据结构,包括堆(heap)、栈(stack)、队列(queue)及优先队列2.关联容器

2017-04-28 16:18:57 502

原创 进阶篇_STL详解(函数模板特化,类模板特化,用模板实现自己的通用算法)

STL ~= 容器 + 算法 + 迭代器。容器用于容纳数据,算法用于处理数据,迭代器像胶水一样将容器和算法紧密地结合在一起。算法通过迭代器来定位和操控容器中的元素,事实上,每个容器都有自己的迭代器,只有容器自己才知道如何访问自己的元素,这使得迭代器就像一个指向容器中元素的普通指针一样。#include #include #include using namespace std

2017-04-28 10:03:37 1063

原创 vector反转reverse

vector实现反转:reverse(vector.begin(), vector.end());输入一个链表,从尾到头打印链表每个节点的值:#include #include using namespace std;struct ListNode{    int val;    struct ListNode* next;    ListNode(int

2017-04-20 23:19:02 23684 1

转载 C++ STL之 vector的capacity和size属性区别

vector中这两个属性很容易弄混淆。size是当前vector容器真实占用的大小,也就是容器当前拥有多少个容器。capacity是指在发生realloc前能允许的最大元素数,即预分配的内存空间。当然,这两个属性分别对应两个方法:resize()和reserve()。使用resize(),容器内的对象内存空间是真正存在的。使用reserve()仅仅只是修改了ca

2017-04-20 16:40:42 453

转载 python爬虫入门三之Urllib库的基本使用

关于完整python爬虫教程体系,强烈建议直接看这个教程(以下转载内容也可忽略)本文转载自:静觅 »Python爬虫入门三之Urllib库的基本使用那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧。1.分分钟扒一个网页下来怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML

2017-04-19 19:43:14 1295

原创 宏、typedef、const

宏#define宏的本质:替换而已。eg. #define PI 3.1415宏与const在定义常量时的区别:前者只是把常量替换到源文件中,因此编译调试时会出现具体的数字而宏的名称不会出现在符号表中容易给调试带来麻烦;而后者不会有此问题typedeftypedef定义类型的别名。eg. typedef int* p;       typedef int (*PFUNC)(in

2017-04-19 18:06:55 317

原创 编译预处理

编译器在对源程序进行编译之前,首先要由编译预处理程序对程序文件进行预处理,这个过程称为编译预处理。下面介绍几种最常用的预编译指令:

2017-04-19 09:36:57 359

原创 编码与python中文使用问题

不同编码方式英文ASCII、中文GB2312……很多语言有不同编码,转码经常出现乱码。这时候Unicode应运而生,其把所有语言都统一到一套编码里,这样就不会再有乱码问题了。新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。所以,本着节约的精

2017-04-18 22:54:13 365

原创 作用域与可见性、extern

作用域:C++中按照作用区域的大小,可以把作用域分为局部作用域和全局作用域可见性:可见性是从另外一个角度(标识符引用)来看作用域的。换句话说,标识符只在作用域内可见1. 局部作用域#include using namespace std;//作用域与可见性 int getNum(void){ int num = 0; { cout<<num<<endl; //上下

2017-04-18 13:43:58 828

原创 C++名字空间详解

本质的目的:代码量增加后,不同名字空间内的同名函数、同名变量等可以同时存在,互不冲突作用的结果:在名字空间中声明和定义的内容都属于这个名字空间语法格式:namespace 名字空间名{ //名字空间内的声明和定义 } ;范例:namespace zhangsan    //名字空间zhangsan {    class Studen

2017-04-18 10:33:36 519

原创 源文件与头文件

源文件cpp:不同的逻辑实现;   头文件h:相关的声明1. 源文件cpp可以引用头文件h、头文件h可以引用另外的头文件h(已达到共用的目的eg. 项目中经常见到的stdafx.h就是多个头文件的集合),但不可以应用源文件cpp(不符合规范)2. 编译:4. #pragma once这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次#pragma

2017-04-18 10:05:53 750

转载 关于vector的vector(int)的使用问题

最近写了一题需要使用矩阵来存储树结构,元素只有10W个,但是需要开10W*10W的矩阵来表示关系,明显是开不下的,这里vector>是一个不错的选择,但是在使用的时候回发生一些问题:vector subscript out of range,如下图这里我是直接定义使用,就报错了[cpp] view plain copyprint?vect

2017-04-17 22:21:27 2482

转载 c++中vector的用法详解

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.     用法:          1.文件包含:                首先在程序开头处加上#include以包含所需要的类文件vector          还有一定要加上using name

2017-04-17 14:10:13 7148

原创 异常(try-catch-finally)

程序的异常处理

2017-04-14 21:02:21 471

原创 引用(变量的别名)

引用的本质,就是变量的别名。通俗地讲就是变量的绰号,任何对变量引用的操作都相当于操作变量本身。如下:# include using namespace std;int main(){    int val = 1;    int& p = val;     //p是val的别名    cout<<p<<" "<<val<<endl;    //输出1 1   

2017-04-14 19:30:20 3528

原创 指针在函数中的应用

指针在函数中的应用:1. 指针作为函数参数。函数之间参数的传递要对数据进行拷贝,而利用指针作为函数参数传递数据的本质,就是在主调函数和被调函数中,通过指向同一内存地址的不同指针(函数传值时拷贝了一个指针)访问相同的内存区域,从而实现数据的传递和交换。如下:# include using namespace std;//指针在函数中的应用,这里是作为函数的参数 void g

2017-04-14 13:35:34 1325

原创 指向指针的指针

普通指针指向的是一个具体的数据,而指针的指针所指向的是一个指针。如下:# include using namespace std;int main(){ int a = 2; int* p = &a; //普通指针,指向一个具体数据 int** pp = &p; //指针的指针,指向一个指针 cout<<a<<endl<<p<<endl<<pp<<endl; retur

2017-04-14 13:08:38 380

原创 C++强制类型转换

1. (double) a;2.  static_cast (a);C++偏向用第二种,两者含义一样,功能基本一样的# include using namespace std;//C++强制类型转换 int main(){ int a = 12; double b = (double)a; //法一: (double)a; double c = static_

2017-04-13 18:03:27 352

原创 void类型与void类型指针

2017-04-13 16:53:26 734

原创 进阶篇_一切指针都是纸老虎(指针详析)

指针:1. 指针首先是一种基本数据类型。int*、double*2. 指针的本质是内存的地址。3. 指针的加减,实际上是让指针发生偏转,指向另外的内存位置(而不是单纯的内存编号加1减1)。指针跟它所指向的真正数据类型相关,指针加1减1会使指针指向的地址增加或者减少一个对应的数据类型的长度。如下:# include using namespace std; int main(

2017-04-13 16:31:47 390

原创 进阶篇_指向自身的this指针

this是C++中的一个关键字,代表指向当前对象的指针,类的每个非静态成员函数中都隐式地声明了this指针。this更多时候的用处:用来返回指向对象本身的指针以实现对象的链式引用,或者避免对同一对象进行赋值操作。例如:# include using namespace std;class Point{public: Point(int x, int y) : m_nX(x),

2017-04-13 15:50:16 694

原创 进阶篇_C++类对象的内存模型

# include using namespace std;//类对象的成员变量、成员函数内存测试 class Base{public: //成员函数 void foo1() { } void foo2() { }public: //成员变量 double m_fMember1; int m_nMember2; };typedef void (Base::*P

2017-04-13 15:03:25 916

原创 实战面向对象_工资管理系统

/* Employee.h文件 */# include using namespace std;class Employee{protected: string m_name; int m_time;public: Employee(string name, int time) //构造函数 : m_name(name), m_time(time) { } st

2017-04-11 16:21:49 1315

转载 UML学习入门就这一篇文章

1.1 UML基础知识扫盲UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。你可能会问:这明明是一种图形,为什么说是语言呢?伟大的汉字还不是从图形(象形文字)开始的吗?语言是包括文字和图形的!其实有很多内容文字是无法表达的,你见过建筑设计图纸吗?里面还不是很多图形,光用文字能表达清楚建筑设计吗?在建筑界,

2017-04-09 21:21:39 371

原创 面向对象分析方法

面向对象分析方法:Booch、Coad、OMT、UML

2017-04-09 21:13:51 512

原创 多态

虚函数实现多态:基类函数声明前加virtual,派生类即可重新定义该虚函数

2017-04-09 18:55:33 218

原创 组合

组合(非继承关系):电脑(由鼠标、键盘等组成),而不是电脑继承鼠标,继承键盘

2017-04-09 17:06:54 239

原创 继承

C++继承中,子类继承父类的派生方式有public、protected、private三种;进化方式有保留(父类属性和行为)、改进(重写父类成员函数)、添加(添加子类特有属性行为)三种

2017-04-09 14:17:56 307

原创 友元(friend)

友元:friend

2017-04-08 16:08:14 367

原创 类成员的访问控制

public、protected、private

2017-04-08 14:07:32 312

转载 C++拷贝构造函数详解

一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyprint?int a = 100;  int b = a;   int a = 100;int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面

2017-04-06 14:06:22 333

转载 C++语言学习路线

转载自:http://blog.csdn.net/lwbeyond/article/details/49669117C++ 虽然内容比较多,但是细分下来,可有几大部分组成,每一部分侧重点不同,我在学习过程中按这几大块来理解,发现很有效率,故总结如下。一、基本语言C/C++ 声明与定义C++类型转换C 指针精要二、面向过程的编程函数返回值问题函数内

2017-04-06 13:00:30 320

原创 new一个对象后必须delete

new(构造函数)一个对象后必须delete(析构函数)

2017-04-05 15:48:42 2409

原创 构造函数与析构函数

分别用来处理对象的创建和销毁

2017-04-05 15:35:08 283

原创

类(属性+行为):即成员变量+成员函数另附一个范例

2017-04-05 13:53:51 232

原创 面向对象程序设计思想

面向对象的三座基石:封装、继承、多态

2017-04-04 16:25:19 598

原创 结构化设计思想 VS 面向对象设计思想

前者:自顶而下,逐步求精。但数据和操作是相互分离,若修改代码牵一发而动全身,没有复用性!后者:可重复性

2017-04-04 16:06:57 1393

原创 函数设计的基本原则

函数两要素:函数声明与函数定义的原则

2017-04-04 13:27:58 2849

原创 重载函数

函数名相同,参数的类型和个数不同

2017-04-03 21:37:55 435

原创 内联函数(inline)

当函数体本身短小且执行时间短,但需要多次调用时,为了避免调用造成的资源浪费,用内联函数(函数声明前加inline)。这时将不再发生函数调用,而是编译时自动将函数体粘贴到main中,以体积换速度。

2017-04-03 21:27:24 317

BOW图片sift分类代码

BOW图片sift分类代码,基于李飞飞05年LDA论文生成的模型代码

2017-10-09

空空如也

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

TA关注的人

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