自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++之STL

3:介绍deque的框架。一,什么是STLSTL是 Standard Template Library 的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是...

2018-06-17 22:56:04 263

原创 线程

一,线程(1)概念 **线程**是一个程序中的一个执行路线,更准确的说,一个线程是进程中的一个执行序列。(2)多线程的优缺点(a)优点 1. 创建一个新的线程的代价较小。 2. 线程间切换更容易。 3. 线程占用的资源更少。 4. 可以充分利用多处理器的可并行数量。( b)缺点 1. 健壮性降低 2. 缺乏访问控制 3. 编程难度提高二,...

2018-06-08 15:36:26 198

原创 智能指针

一,智能指针发展之路从RAII说起教科书里关于“动态创建内存”经常会提醒你,new一定要搭配delete来使用,并且delete掉一个指针之后,最好马上将其赋值为NULL(避免使用野指针)。RAII全称为Resource Acquisition Is Initialization,意思是“资源获取就是初始化”。RAII要求,资源的有效期与持有资源的对象的生命期严格绑定,即由对象...

2018-05-24 17:08:34 223

原创 异常处理

一,什么是异常当程序在运行过程中,函数中出现了自己无法处理的错误时抛出异常。让函数的调用者直接或间接处理这个错误。二,异常编写形式c++的异常包括下面的三个部分: 1.throw子句:throw子句用于抛出异常,被抛出的异常可以是C++的内置类型(例如: throw int(1);),也可以是自定义类型。2.catch子句:每个catch子句都代表着一种异常的处理。catch...

2018-05-22 09:10:13 208

原创 模板

一,什么模板模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 使用模板的目的就是能够让程序员编写与类型无关的代码。二,模板分类模板分为模板函数和模板类 (1)模板函数 格式:template <class 形参名1,class 形参名2 ...>返回类型 函...

2018-05-22 08:09:43 555

原创 C++对象模型

多态所谓的多态,其实就是多种形态。那么多态是怎么实现的呢?在C++中,多态是通过虚函数实现的。简单来说,父类的指针/引用调用重写的虚函数,当父类的指针/引用指向父类对象时调用父类的虚函数,指向子类对象时调用子类的虚函数。 C++的多态分为静态多态和动态多态。 1,静态多态就是重载,因为是在编译期决议确定,所以称为静态多态。 2,动态多态就是通过继承重写基类的虚函数实现的多态,因为是在运行...

2018-05-11 17:47:15 172

原创 继承与多态

c++是基于面向对象的编程语言,面向对象的三大特性为:封装、继承和多态。本文对继承与多态的知识点进行了总结归纳。一,继承继承是面向对象复用的一种手段。通过继承定义一个类,实现共享公有的东西,实现各自本质上不同的东西。 1,访问限定符和继承限定符 我们都知道在一个类内,对成员变量和成员函数都加上了访问限定符,访问限定符有三种: public ,protected ,private。...

2018-05-01 13:05:30 233

原创 C++动态内存管理

C++是通过new和delete来进行动态内存管理的:void Test(){ int *p1=new int; int *p2=new int[]; delete p1; delete[] p2;}通过上面的栗子,我们可以知道,c++通过new/delete来动态管理对象,通过new[]/delete[]来动态管理对象数组。 注意:new/dele...

2018-04-10 14:05:39 121

原创 const成员函数,内联函数,友元与static成员

一.const 成员函数 class Date{public: void fun1() { cout << "void fun1()" << endl; } void fun2()const //const成员函数 //编译器对const成员函数的处理 //void fun2(const D...

2018-03-30 19:57:16 340

原创 C++之类与对象

C++是一种基于面向对象的程序设计语言 ,那么什么是面向对象呢?面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。说到面向对象,就得知道它的三大特点:1.封装性,2.继承性;3.多态性。 本文就封装性进行展开探讨。 封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整

2018-03-25 11:02:01 184

原创 C++之引用

今天我们来讨论一下C++中一个比较有去的语法—-引用。一.什么是引用引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法: 类型标识符 &引用名=目标变量名;int main(){ int a=2; int& b=a; //b是a的引用 return 0;}引用的特点: 1.对一个变量可取多个别名int main(){

2018-03-22 10:16:43 175

原创 C++杂谈

写这篇博客的主要目的是为了巩固自己在C++的学习,主要有一下几个知识点: 1.介绍一下C++ 2.为什么C++支持重载?C语言不支持–重点 3.缺省参数 4.命名空间一.C++简介 C++简单来说,是C语言的继承,也可以说是带类的C。它是一种基于对象的程序设计语言。因为C++是由C语言发展而来,C++基本上支持C语言的一切语法,所以,C++也可面向过程编程。C++语言主要有三大特点

2018-03-19 10:28:17 425

原创 海量数据问题分析

所谓的海量数据问题不是什么高大上的问题,其实就是当数据量大到我们普通计算机的内存不够用了。下面借助几个问题来简单分析一下: 一. 给一个超过100G大小的日志文件, 日志中存着IP地址, 设计算法找到出现次数最多的IP地址? 如图所示: 1. 将日志文件中的 每一个 ip%1000,这样就能将100G的文件分成1000个小文件,每个文件大概在100M左右,这样我们普通电脑的内

2018-03-03 21:23:22 897

原创 C语言小项目--注释转换

这里所说的注释转换是指将C风格的注释转换成C++风格的注释。那么我们如何来实现这个目的呢? 首先我们得有一个名为 input.c 的文件 ,里面写着一段C风格的注释和一些代码。而我们转换后的注释及代码应该保存在一个名为 output.c 的文件里。要将 input.c中的内容转换,我们就得将该文件中的内容一个一个取出,一边取一边转换,这里我们需要用到 fgetc()和fputc()这两个库函数。那

2017-12-07 21:32:40 288

原创 浅谈时间复杂度和空间复杂度

一个算法的好坏,该如何衡量呢? 我们通常根据算法的复杂度来衡量一个程序的复杂度。复杂度分为时间复杂度和空间复杂度。 那么,下面来讨论一下如何算时间复杂度和空间复杂度。1.时间复杂度所谓的时间复杂度就是指一个算法中执行基本操作的次数。那么时间复杂度该如何表示呢?时间复杂度之大O渐进表示法一个算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。 语句总的执行次数记为T(

2017-12-07 20:50:18 506

原创 浅谈C语言自定义类型

一、结构体 1. 什么是结构体:简单来说就是一些值得集合,结构体内的每个成员可以是任何类型的变量(这点和数组有着明显的区别)。 2. 结构体的申明:struct tag //此处的tag和后面的variable-list 二者可缺一,但不可都缺{ member-list;//成员列表,不可缺少}variable-list;//注意此处的分号不可丢3.结构体的定义及成员访问

2017-11-25 11:30:52 2934

原创 简述指针数组 数组指针 函数指针 函数指针数组和函数指针数组的指针

(1)指针数组:实际上是一个数组,只不过数组内存放的是指针,我们把它叫做指针数组; 由于它是一个数组,它是不能从堆空间里申请空间的。 只能做个循环,每个元素去申请空间,或者每个元素去指向另外的地址空间。 例如:int *arr[10] //这是一个一维指针数组; 具体用法如下:int main(){ //定义两个指针 char *a = "hello"; ch

2017-11-17 22:04:53 332

空空如也

空空如也

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

TA关注的人

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