自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

满城丶琉璃月

记录学习生活,欢迎讨论交流......

  • 博客(21)
  • 收藏
  • 关注

原创 C++:构造函数、复制构造函数、运算符的重载(赋值运算符“=”的重载)、深拷贝与浅拷贝

关于构造函数、复制构造函数、运算符重载的语法这里不再赘述。下面说一下再使用这些东西时的注意事项。一、构造函数可以重载一个类可以有很多个构造函数,它们之间为重载关系,编译器会根据调用构造函数时的具体实参数目和类型选择合理的构造函数。二、复制构造函数被调用的三种情况:1.用一个类的对象初始化另一个对象的时候2.函数的参数是一个对象的时候,由于程序调用复制构造函数时有额外的开销,...

2019-03-26 10:13:38 1086

原创 面试问题总结

3.25阿里电话面:1.计算机如何分配内存?堆和栈的区别,分配内存方面的速度如何?2.如何构建最大堆(大顶堆)和最小堆(小顶堆)?时间复杂度如何?3.C++中虚函数的实现机制?4.在C++的多态机制中,方法重载与方法重写的区别?5.TCP和UDP的优缺点和区别?...

2019-03-25 21:38:16 147

转载 C++:mutable 关键字

原文地址 博客园:http://www.cnblogs.com/yongdaimi/p/9565996.htmlmutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。我们知道,被const关键字修饰的...

2019-03-19 13:09:37 193

原创 《程序员面试宝典》第4版 第五章 程序设计基本概念

一、 赋值语句#include <iostream>using namespace std;int i = 1;int main(){ int i = i; cout<<i; return 0;}//执行结果是一个随机值,在我的电脑里是4229539这段代码看起来诡异,但确实可以执行,注意main里面的i和外边的i不是一个值。二、 ...

2019-03-19 00:43:12 142

转载 C++STL中的unique函数解析

转自博客园:原文链接:https://www.cnblogs.com/wangkundentisy/p/9033782.html原作者的这篇博文写的非常通俗易懂,做了个搬运工。一、总述unique函数属于STL中比较常用函数,它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情况,下面会...

2019-03-19 00:42:05 203

原创 柳永词

柳永北宋著名词人,婉约派词人之一。原名三变,字景庄,后改名永,字耆卿,排行第七,又称柳七。人称“凡有井水饮处,皆能歌柳词”。1、雨霖铃·寒蝉凄切寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处,兰舟催发。执手相看泪眼,竟无语凝噎。念去去,千里烟波,暮霭沉沉楚天阔。多情自古伤离别,更那堪,冷落清秋节!今宵酒醒何处?杨柳岸,晓风残月。此去经年,应是良辰好景虚设。便纵有千种风情,更...

2019-03-18 12:56:23 828

原创 反转字符串——递归版本和非递归版本

题目的要求就是输入一个字符串,然后输出它的逆序。递归版本:需要真正理解递归的精髓:压栈和出栈#include&lt;stdio.h&gt;#include&lt;string.h&gt;void reverse(char* str){ char tmp = *str;//用tmp存入 字符串的第一个字符 int len = strlen(str);//求当前字符串的长度 ...

2019-03-18 11:41:24 289

原创 实现单链表反转——递归版本和迭代版本

首先,关于递归的知识,可以参考我的这篇 递归:汉诺塔 关于单链表的知识可以参考我的这篇 单链表整表创建的两种方法(头插法和尾插法)本文中链表的结构定义如下:typedef struct Node{ int data; Node *next;} Node, *List;想要反转整个链表,可以考虑一个一个的结点从后往前反转,这就考虑到了递归与回溯,所以可以用递归实现...

2019-03-18 11:41:16 1311

原创 C/C++中关于数组的一个小问题

这个问题是我在做题的时候发现的,虽然是个很2的问题,但也是硬生生浪费了我两个小时才找到问题所在。废话就不多说了,看题!!!===============华丽分割线==================================================同志们觉得执行下面代码后程序的输出结果应该是什么?#include <stdio.h>int main()...

2019-03-18 11:40:56 197

原创 C语言:宏定义函数

通过一个比较函数的例子来说明宏函数和普通函数的区别:宏函数形式:#define MAX( a, b) ( (a) &gt; (b) (a) : (b) ) //这里为什么有这么多括号,后面会讲普通函数形式:int max(int a, int b){ return (a &gt; b a : b)}宏函数优点:节省空间(给形参节省)缺点:浪费时间(主要...

2019-03-18 11:40:46 26249 6

原创 const int* p 和 int* const p 的区别 以及 const 的其他用法

const int* p 中 const 修饰的是 *pint* const p 中 const 修饰的是 p关键是看const修饰的是什么技巧是看const和*的相对位置const在*左边,则指针指向的值不可改变;const在*右边,则指针本身不可改变;比如:const int * pOne (推荐)或者 int const * pOne;//指向整形常量的指针...

2019-03-18 11:40:28 554 3

原创 C/C++ 中变量的作用域和生存周期

关键字:static extern auto局部变量的作用域,起始于定义处,直到所在的大括号处结束。全局变量的作用域,起始与定义处,知道本文件结束。参考先看几段代码,理解了他们就理解了作用域的概念://===代码1=====#include&lt;stdio.h&gt;int main() { int a = 10; { int a ...

2019-03-18 11:40:18 404

原创 在Matlab、Code::Blocks、Visual Studio中代码注释和取消注释的快捷键

Matlab中:Ctrl+T 多行快速注释Ctrl+R 多行取消注释Code::Blocks中:Ctrl+Shift+C 多行快速注释Ctrl+Shift+X 多行取消注释Visual Studio中:Ctrl+K,然后 Ctrl+C 多行快速注释Ctrl+K,然后 Ctrl+U 多行取消注释...

2019-03-18 11:40:03 435

原创 七大排序算法之总结篇

七大排序算法指的是:冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序关于这些排序算法的具体介绍和实现方法可参考下面这些链接:七大排序算法之简单算法系列(一)——冒泡排序七大排序算法之简单算法系列(二)——简单选择排序七大排序算法之简单算法系列(三)——直接插入排序七大排序算法之改进算法系列(四)——希尔排序七大排序算法之改进算法系列(五)——堆排序...

2019-03-18 11:34:58 157

原创 七大排序算法之改进算法系列(七)——快速排序

快速排序(Quick Sort):快速排序的原理:参考这篇 快速排序(过程图解)快速排序的代码实现:#include &lt;iostream&gt;using namespace std;void swap(int k[], int low, int high){ int temp; temp = k[low]; k[low] = k[high]; k[high...

2019-03-18 11:18:30 440

原创 七大排序算法之改进算法系列(六)——归并排序

归并排序(Merging Sort):归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。实际上就是将数据序列划分为越来越小的半子表,再对半子表排序,最后再用递归方法将排好序的半子表合并成越来越大的有序...

2019-03-17 19:22:26 414

原创 七大排序算法之改进算法系列(五)——堆排序

堆排序(Heap Sort):就是利用堆(假设利用大顶堆)进行排序的方法。堆排序可以看成是简单选择排序的一种升级版本。为了弄清楚堆排序,首先来学习几个概念,分别是堆、大顶堆、小顶堆堆是具有下列性质的完全二叉树:每个节点的值都大于或者等于其左右孩子节点的值,称为大顶堆;或者每个节点的值都小于或者等于其左右孩子节点的值,称为小顶堆可见,根结点一定是堆中所有结点最大或者最小者,如果按...

2019-03-14 21:50:19 666

原创 七大排序算法之改进算法系列(四)——希尔排序

希尔排序(Shell Sort)希尔排序是由D.L.Shell于1959年提出来的一种排序算法。需要指出的是,在这之前排序算法的时间复杂度基本上都是O(n²)的,希尔排序算法是突破这个时间复杂度的第一批算法之一。回想一下直接插入排序过程,排序过程中,我们可以设置一条线,左边是排好序的,右边则是一个一个等待排序,如果最小的那个值在最右边,那么排这个最小值的时候,需要将所有元素向右边移动一位。...

2019-03-12 17:05:48 337

原创 七大排序算法之简单算法系列(三)——直接插入排序

直接插入排序(Straight Insertion Sort)直接插入排序的基本操作:将一个记录插入到已经排好序的有序表中,从而得到一个新的。记录数增1的有序表。直接插入排序理解和实现起来都比较简单,又称为简单插入排序。方法就是,将待排的序列(无序表)中的元素一个个抽出,再逐个插入到已经排好的序列中(有序表)。C++代码实现如下:#include &lt;iostream&g...

2019-03-12 15:12:09 170

原创 七大排序算法之简单算法系列(二)——简单选择排序

简单选择排序(Simple Selection Sort)原理:通过n-1次关键字之间的比较,从n-i+1个记录中找到关键字最小的记录,并和第i个记录交换。在冒泡排序中,我们每次都做了交换,而这里我们不需要每次都进行交换,而是把最小的数和第i个记录交换。直接看代码进行理解。简单选择排序的代码实现:#include &lt;iostream&gt;using namespa...

2019-03-12 12:30:46 357

原创 七大排序算法之简单算法系列(一)——冒泡排序

冒泡排序(Bubble Sort)是一种交换排序冒泡排序的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。可以把冒泡排序理解为一种改进的交换排序算法。那么,就先从交换排序算法说起吧。其实,谈到排序算法,我们脑海中自然而然最容易想到的算法应该就是交换排序算法了。也就是利用两层循环内层循环探测到的元素与外层那个元素逐一比较,如果小就进行交换,这样每一趟就能...

2019-03-12 11:42:37 181

空空如也

空空如也

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

TA关注的人

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