C++
文章平均质量分 62
_stark
这个作者很懒,什么都没留下…
展开
-
C++ : :新特性之引用
C++ : : 引用前言:引用是C++在C的基础上引入的新概念,今天我们就来剖析一下引用,看看这个新的概念有什么优势和缺点。1:概念 引用是已经定义的变量的别名,例如一个已经定义的变量num,它的如果定义了它的引用变量refnum,则可以用refnum和num来交替表示这个变量。2:创建引用变量 相比于C,C++给&又赋予了另一个含义,可以用其来创建引用变量。在用其创建引用变量时,&不原创 2016-07-09 11:20:36 · 612 阅读 · 0 评论 -
【算法面试题】交换排序问题
面试题原数组pArr为[‘A’,’B’,’C’,’D’,’E’],现在给定新位置pPos[3,0,1,4,2],要求只能采用交换的方式并按照新位置进行排序,要求空间复杂度为O(1)。排好序后的序列为 D A B E C.问题分析如果不给限制条件这道题还是非常简单的,现在给定了空间复杂度的限制为O(1),也就是说我们不能再原有数组的基础上再来开辟新的空间,这道问题就变得有些复杂了。第一种解法:不原创 2016-12-19 17:32:25 · 589 阅读 · 0 评论 -
【C++】动态内存管理和智能指针
C++动态内存管理的方式malloc和new,free和delete在C语言中,我们通常用malloc和free来动态的管理内存,其中malloc用来在堆上开辟空间,而free用来释放malloc或其他在堆上动态开辟内存的函数所开辟的空间。在C++中,我们用new/delete;new[]/delete[]来动态的管理内存,相比于C语言中的malloc和free,他们之间有什么差别呢?首先,它们的调原创 2016-12-24 20:46:50 · 2079 阅读 · 0 评论 -
C++知识点复习——继承关系&动态绑定&虚函数
1、什么是继承继承是实现代码服用的重要手段,在层次关系的顶部有一个基类,其它类则是直接或者间接从基类继承而来的,这些继承而来的类称为派生类。基类负责定义继承的层次关系中所有类公有的成员,而派生类则可以定义自己特有的成员。2、类派生列表类的派生列表明确的指出这个类是从哪个类继承而来的。 这里我们要提到以下类的三种继承关系: 总结1:访问说明符对于派生类直接访问基类的成员没有什么影响,这只原创 2016-12-04 22:10:46 · 611 阅读 · 0 评论 -
AVL Tree(上)
1:定义AVL树又称平衡二叉搜索树,它的任意一个节点的左右子树的高度差不超过1,这样能减少数的高度,以达到减少搜索次数的目的。2:AVL节点的结构 //Key Value结构的AVL树 K _key; AVLTreeNode<K, V>* _Left; AVLTreeNode<K, V>* _Right; AVLTreeNode<K, V>* _parent;原创 2016-10-25 23:01:38 · 535 阅读 · 0 评论 -
HashTable 哈希表/散列
前言在前面,我们提到过了几种搜索结构的树,二叉搜索树是根据左孩子节点的值小于根节点,右孩子节点的值大于根节点而建立的,当我们把n个数据插入到二叉搜索树中,最好情况下(数据插入后是一颗完全二叉树)我们查找数据的时间复杂度为O(lg(N)),但是当我们按照一定的顺序往二叉搜索树中插入数据时,它会呈现一个线性的状态,这时候查找数据的时间复杂度为O(N).为了对这种情况进行优化,我们提出了AVL树的结构,A原创 2016-11-04 20:46:10 · 751 阅读 · 0 评论 -
C++知识体系思维导图
原创 2016-09-08 11:39:34 · 9822 阅读 · 0 评论 -
C++::智能指针
1.智能指针的引入场景先来看看以下这种场景void fun(){ int *Pa = new int(10); // // if (1) throw 1; // delete Pa;}void test1(){ try { fun(); } catch (...) {原创 2016-09-04 09:35:04 · 442 阅读 · 0 评论 -
C++::继承
1、什么是继承? 答:继承是从已存在的类中派生出新的类,而这个新类继承了父类(基类)所有的特征(包括成员方法)。继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。2、访问限定符和继承关系答:在类中,protected、private和public是一个类当中的类成员访问限定符,它们决定了成员是否能在类外访问(私有成员和公原创 2016-08-22 22:50:04 · 551 阅读 · 0 评论 -
C++:日期类的实现
所谓的日期类,就是能对日期进行加减天数和减日期求天数之间的运算,运用到了C++中类以及运算符重载的相关知识,下面我们来用C++将日期类实现以下。Date.h:用来定义日期类的成员变量和成员函数#ifndef DATE_H__#define DATE_H__#include using namespace std;class Date{private: int m_year;原创 2016-08-05 12:01:03 · 996 阅读 · 0 评论 -
static关键字其实一点也不安静
static关键字在编程中非常容易混淆,因为它用于不同的“上下文环境”有不同的作用和意思,现在我们来吧static关键字进行一个总结,希望能对看到这篇文章的人能有所帮助。C语言中static关键字主要有以下作用:1、修饰变量: static可以修饰全局变量和局部变量。它们都存储在静态区当中。a、静态全局变量: static修饰的全部变量称为静原创 2016-08-16 12:46:19 · 595 阅读 · 1 评论 -
C++对象模型和多态
什么是多态?多态是C++三大特性之一,它可以简单的概括为“一个接口,多种方法”,程序在运行时才能通过基类指针指向的对象的类型来决定调用那个函数,今天我们就要谈谈多态的底层的实现。虚函数C++多态是通过虚函数来实现的,所谓的虚函数,就是在类的成员函数返回值类型前面加上virtual关键字来定义的,在C++中允许派生类对基类的虚函数进行重写,一旦派生类对基类的虚函数进行重写,那么在派生类中,基类的虚函数原创 2017-02-10 16:07:26 · 701 阅读 · 0 评论