
C++
文章平均质量分 87
KomaCC
不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
展开
-
内联函数 && static成员函数
什么是内联函数? 内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。 内联函数不是在调用时发生控制转移,而是类似宏替换,在编译时将函数体替换调用处的函数名。PS:一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。意义: 内联是一种以空间换时间的做法 内联是用来消除函数调用时的时间开销。它通常用于频繁执行的函...原创 2018-06-12 18:47:56 · 488 阅读 · 0 评论 -
实现最小栈的两种O(1)算法
最小栈的操作和普通栈的操作没有太大区别,唯一多了一个方法就是getMin()方法,这个方法是用来获取当前栈内的最小值。直接上代码:第一种:#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<iostream> #include<stack> using namespace std; clas...原创 2018-05-25 17:23:52 · 895 阅读 · 1 评论 -
C++之 “引用”
“引用”用我们那的话叫 reference在搜狗百科上是这么解释的: 写文章时,有意引用 成语、 诗句、 格言、典故等, 以表达自己想要表达的思想感情,说明自己对新问题新道理的见解,这种 修辞手法叫引用。 当然我们今天要讲的不是这样的引用,讲的是C++语法上的引用。在C++的百度百科上是这么解释的: 引用引入了对象的一个同义词。引用就是某一变量(目标)的一个别名,对引用的操作与对变...原创 2018-04-28 20:02:27 · 248 阅读 · 0 评论 -
C++之菱形继承与虚继承(含虚函数)
面向对象的三大特征:封装,多态,继承前面我们已经讲了继承的一些知识点,在这基础上,我们讲的时候再涉猎一些多态的只是。下面我们先接着上次讲有虚函数的菱形虚继承首先什么是虚函数。?虚函数:在类里面,函数前面有virtual关键字的成员函数就是虚函数。代码块:class base { public: base() { cout << "base()" << endl; ...原创 2018-05-06 10:21:07 · 1512 阅读 · 0 评论 -
C++之实现日期类
通常我们想计算某一天到另一天的距离时,要是间隔太大,我们就回去利用网上的日期计算器去算。今天,这篇博客就是教我们如何去实现一个简单的日期计算器。想要去实现某个功能其实并不是很难,难点在于我们综合起来地去考虑闰年或者月份的天数这块。代码块:Date.h#define _CRT_SECURE_NO_WARNINGS 1 #include<assert.h> #include<iost...原创 2018-05-18 15:14:15 · 433 阅读 · 0 评论 -
C++之多态
概念:多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。多态的两个条件:1.父类的指针或引用2.调用的成员函数必须是虚函数的重写构成多态 ----->跟指向的对象有关不构成多态 ----->跟指针的类型有关代码块:#pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream...原创 2018-05-12 09:39:21 · 340 阅读 · 0 评论 -
C++之菱形继承与虚继承(无虚函数)
定义:设有一个父类A类,B类和C类分别继承它,然后再有一个D类继承B类和C类。这样就叫做菱形继承也叫钻石继承(Diamond inheritance)上代码块:#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<iostream> using namespace std; class A { public...原创 2018-05-03 13:35:18 · 383 阅读 · 0 评论 -
C++之动态内存分配 new/delete
提到C语言的内存分配,我们自然而然会想到标准库函数中的 malloc 和 free 来动态分配内存空间而在C++中,我们则是提供了运算符 new 和 delete ,来取代 malloc 和 free 进行动态分配内存空间。malloc/free和new/delete的区别和联系?1. 它们都是动态管理内存的入口。2. malloc/free是C/C++标准库的函数,new/delete是C++操...原创 2018-04-28 16:35:11 · 3188 阅读 · 0 评论 -
C++继承关系之子类的六个成员函数
默认成员函数 在继承关系里面, 在派生类中如果没有显示定义下列六个成员函数, 编译系统则会默认合成这六个默认的成员函数。 上图: 这篇文章会详细介绍构造函数,析构函数,拷贝构造函数和赋值运算符的重载。 因为另外两个在我们这个阶段基本上不用到,所以只要大概知道有这么个东西就行(说白了就是我也不会。。。) 下面我们先讲: 构造函数和析构函数 构造函数和析构函数概念的东西就不用过多解释了吧...原创 2018-05-02 20:00:21 · 887 阅读 · 0 评论 -
C++之继承
概念:继承:在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继 承称为多继承。三种继承权限方式: public protected private 1.Public和Protected前两种方式保持基类的所有成员的属性不变,且 2.派生类可以访问基类的public和protected成员,但仍然...原创 2018-05-01 18:51:37 · 206 阅读 · 0 评论 -
函数重载与缺省值
什么是函数重载?在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。何时选择函数重载?当将要定义一组函数,使它们执行一系列的操作,但是它们是应用在不同的参数类型上的。此时我们可以选择重载函数。代码分析:#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<...原创 2018-03-27 20:19:43 · 704 阅读 · 0 评论 -
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
求位不同的时候我们可以调用一个compare函数,函数里面运用for循环,需要注意的是:((a & 1) ^ (b & 1))这块是先与再异或。二进制数列与上1求出最低位,然后两个最低位进行异或比较,符合条件的话 court++,最后再右移一位直至循环结束。 与 & : 两个操作数同为1是方为1,不同为0. 异或 ^ : 相同为0,不同为1。原创 2017-10-09 16:55:33 · 380 阅读 · 0 评论 -
vector list deque三者的区别与联系
vector 将元素置于一个动态数组中加以管理,支持随机访问,数组尾部添加或移除元素非常快速。但是在中部或头部安插元素比较费时;vector底层动态维护了一段连续的空间,随着元素的加入,当容器中的元素存放满时,如果再要加入其它数据,vector的内部机制会自动的进行扩容以容纳新元素。 扩容: (1)配置一块新空间 (2)将旧元素一一搬往新址 ...原创 2018-08-20 10:54:33 · 503 阅读 · 0 评论