![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
xiaocherry1128
这个作者很懒,什么都没留下…
展开
-
两个队列实现一个栈
1、实行原理 设有两个队列A和B,栈的push操作,直接push到A的队尾就行了。栈的pop操作时,将A中的队列依次取出放到B中,取到最后一个时,最后一个不要放到B中,直接删掉,再将B中的值依次放回A中。栈的top操作时,将A中的队列依次取出放到B中,取到最后一个时,将最后一个值记录下来,再将最后一个值放到B中,再将B中的值依次放回到A中。2、实现代码#includ原创 2017-07-19 13:13:53 · 211 阅读 · 0 评论 -
发布QT程序安装包
一、Windows下发布安装包1、准备QT下载安装:http://download.qt.io/archive/qt/qt-installer-framework 下载安装:http://download.qt.io/official_releases/qt-installer-framework/ Windows系统下载:QtInstal...原创 2019-01-30 16:21:51 · 721 阅读 · 1 评论 -
动态规划
动态规划采用动态规划求解的问题需要具有两个特性:最优子结构(Optimal Substructure):问题的一个最优解中所包含的子问题的解也是最优的。重叠子问题(Overlapping Subproblems):用递归算法对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次综上所述,动态规划的关键是 —— 记忆,空间换时间,不重复求原创 2017-09-10 13:21:11 · 515 阅读 · 0 评论 -
翻转单词序列 vs 左旋转字符串
翻转字符串翻转单词序列 vs 左旋转字符串都会用到翻转字符串函数。void my_reverse(char* begin,char* end){ if (begin == NULL || end == NULL) return; while (begin < end) { char temp = *begin; *begin = *end; *end = tem原创 2017-08-10 10:38:34 · 294 阅读 · 0 评论 -
c++中继承的使用
一、继承概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现由简单到复杂的认知过程。继承定义格式如下图:1.继承关系和访问限定符如下图:、先举一继承的个例子(单继承)如下:class B{public: void F原创 2016-11-07 16:57:06 · 696 阅读 · 0 评论 -
判断带环链表相交的点
1、判断两个链表是否相交,若相交,求交点。(假设链表可能带环)。#include#includeusing namespace std;typedef struct ListNode{ int _value; struct ListNode *Next;//指向下一个节点 struct ListNode* _random;//指向任意节点或者空节点 ListNode(int va原创 2017-07-23 20:18:12 · 489 阅读 · 0 评论 -
c++中的多态
多态一、对象的类型1、静态类型:对象声明的的类型,是在编译时确定的。2、动态类型:目前所指的类型,是在运行时确定的。二、多态基础定义:多态一词来源于希腊语,意思是具有多种形式或形态的情形,在c++语言中有着广泛的含义。分类:静态多态和动态多态。1、静态多态包括:函数重载和泛型编程注意:编译器在编译期间完成的,编译器器根据函数实参的类型(可能会进行隐式类型的转换),可推断出要调用那个函...原创 2016-11-16 13:06:28 · 384 阅读 · 0 评论 -
字符串操作函数
字符串操作函数的使用和模拟实现#include#include#includeusing namespace std;//strcpy功能:把src所指由NULL结束的字符串复制到dest所指的数组中。'\0'也复制过去。char *my_strcpy(char *dest, const char *src)//模拟实现strcpy{ char *tmp = dest; as原创 2017-08-12 00:56:53 · 257 阅读 · 0 评论 -
c语言实现继承和多态
继承概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现由简单到复杂的认知过程。多态 多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。C++中的多态性具体体现在运行和编译两个方面。运行时多态是动态多态,其原创 2017-08-04 19:18:22 · 697 阅读 · 0 评论 -
位图
位图法位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。自己实现在位图中,每个元素为“0”或“1”,表示其对应的元素不存在或者存在。举例:比如数字32:字节位置:32>>5 = 1;位位置:32%32 = 0;那么32放在_table下标为1的字节处,该字节的第一个原创 2017-08-10 22:52:27 · 222 阅读 · 0 评论 -
删除小写字母字符串中重复字符。
删除小写字母字符串中重复字符。比如,输入:bbcacdww;输出:bacdw。void DeleteString(char* pstr){ if (pstr == NULL) return; //创建哈希表并初始化 char *pHash = pstr; const int tablesize = 256; int hashtable[tablesize]; for (int原创 2017-08-10 20:31:12 · 326 阅读 · 0 评论 -
查找一个字符串中第一个只出现两次的字符
1、实现原理 哈希表是一种比较复杂的数据结构。由于比较复杂,STL中没有实现哈希表,因此需要我们自己实现一个。但由于本题的特殊性,我们只需要一个非常简单的哈希表就能满足要求。由于字符(char)是一个长度为8的数据类型,因此总共有可能256 种可能。于是我们创建一个长度为256的数组,每个字母根据其ASCII码值作为数组的下标对应数组的对应项,而数组中存储的是每个字符对应的次数。这原创 2017-07-20 00:28:36 · 936 阅读 · 0 评论 -
实现一个能找到栈的最小元素的min函数
1、实现原理定义两个栈,一个是数据栈,一个是辅助栈。举例说明:首先往空的数据栈中压入3,显然现在3是最小值,把这个值也压入辅助栈,接下来往数据栈中压入4,由于之前的3还是最小值,则4同样压入压入辅助栈(为了和数据栈元素个数相同),接着往数据栈中压入2,2小于之前的最小值3,则2也压入辅助栈,则辅助栈的栈顶就是最小值。数据栈和辅助栈都弹出栈顶元素,此时位于辅助栈的栈顶元素依然是最小值。2、实原创 2017-07-19 23:03:10 · 279 阅读 · 0 评论 -
面试题之排序
#include#includeusing namespace std;//选择排序void SelectSort(int *array, int size){ for (int idx = 0; idx < size; ++idx) { int min = idx ;//假定第一个元素最小 int tmp = idx + 1;//标记第二个元素 while (tmp原创 2017-04-15 23:52:27 · 259 阅读 · 0 评论 -
创建搜索二叉树
二叉搜索树:对于树中的每个节点,它的左子树中所有节点的值都小于父结点,右子树所有值都大于父结点。创建实现:#include#include#includeusing namespace std;struct BinaryNode{ BinaryNode* _left; BinaryNode* _right; BinaryNode* _parent; int _value原创 2017-07-31 11:38:04 · 382 阅读 · 0 评论 -
Linux下使用appimage打包程序
一、打包工具首先需要下载打包的工具,打包工具是以下两种:1.linuxdeployqt下载地址:https://github.com/probonopd/linuxdeployqt/releasesa.下载下图所标记的工具:b.配置linuxdeployqt,命令行输入以下指令:sudo mv linuxdeployqt-continuous-x86_64.AppIm...原创 2019-03-30 14:07:58 · 10825 阅读 · 10 评论