学习
lucky.lu
这个作者很懒,什么都没留下…
展开
-
转载:C++ 自由存储区是否等价于堆?
原文链接:https://www.cnblogs.com/QG-whz/p/5060894.html“free store” VS “heap”当我问你C++的内存布局时,你大概会回答:“在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。如果我接着问你自由存储区与堆有什么区别,你或许这样回答:“malloc在堆上分配的内存块,使用free释放内存,而new所申请的内存则是在自由存储区上,使用delete来释放。”这样听起来似乎也没错,但如果我接着问:自由存转载 2020-09-14 20:11:17 · 144 阅读 · 0 评论 -
数据结构和算法-KMP算法
接上一篇not-so-native算法点击传送KMP算法是D.E.Knuth、J.H.Morris和V.R.Pratt发现的一个字符串匹配算法;核心思想就是:1,先对子串进行预处理,找出前面当前位置的字母在位置之前最近的相同字母的位置,没有就是从前一个字母的的前序相似字母位置加一开始;这样一组位置数据存在next数组中;2,在比较算法中如果有重复字母出现,可以用next数组来减少前序比较。下面是next数组代码int* getNext(string _substr){ int len=原创 2020-08-21 17:13:08 · 191 阅读 · 0 评论 -
数据结构和算法-not_so_native算法
子串查找类似string的find功能返回子串在主串的子串起始下标。基本的从字符主串寻找符合子串的下标的算法是从下标为0开始比较主串和子串,相等就主串索引加一继续比较直到索引的等于子串,不等于的话就主串索引加一,继续比较。下面是程序int findSubStr_base(string str,string target){ int len_str=str.size(); int len_tar=target.size(); if(len_str<len_tar) return -原创 2020-08-18 17:23:45 · 246 阅读 · 0 评论 -
C++设计模式学习-工厂模式
简单工厂,headfirst上提到说不是真正的设计模式,而是一种习惯#include<iostream>using namespace std;enum CONNECT_TYPE { USB, BT, WIFI};class phoneConnect{ public: phoneConnect(){ cout<<"phoneConnect()"<<endl; } virtual ~phoneConnect(){ cout&原创 2020-08-18 14:02:45 · 282 阅读 · 0 评论 -
C++设计模式学习-单例模式
三种单例模式转自博客:http://blog.csdn.net/q_l_s/article/details/52369065小编想要对三种的单例模式做下解析简介因为在设计或开发中,肯定会有这么一种情况,一个类只能有一个对象被创建,如果有多个对象的话,可能会导致状态的混乱和不一致。这种情况下,单例模式是最恰当的解决办法。它有很多种实现方式,各自的特性不相同,使用的情形也不相同。今天要实现的是常用的三种,分别是饿汉式、懒汉式和多线程式。 通过单例模式, 可以做到:确保一个类只有一个实例被建立转载 2020-08-17 17:04:53 · 93 阅读 · 0 评论 -
转载:BitMap介绍
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/chenfs1992/article/details/44599387这里的BitMap指的是把数据存放在一个以bit为单位的数据结构里。每位都只有0和1两个值。为0的时候,证明值不存在,为1的时候说明存在。举例来说:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]这是24位,也就是24bi转载 2020-08-05 16:32:36 · 311 阅读 · 0 评论 -
自学数据结构-树
树的代码实现以及遍历,后续再补充#include#includeusing namespace std;class treeNode{public:int val;treeNode *left,*right;treeNode(){left=NULL;right=NULL;}};treeNode* build(treeNode* root,int val){if(root==NULL){root=new treeNode();root->val=val;}if(原创 2020-08-01 22:37:22 · 119 阅读 · 0 评论 -
C++ string作为形参的使用
比较缩写string引用作为形参#include#includeusing namespace std;int source(string &input){string tmp=input;input[0]=tmp[0];int j=1;for(int i=1;i<tmp.size();i++){if(tmp[i]!=tmp[i-1]){input[j++]=tmp[i];}}return j;}int main(){string str;while原创 2020-07-28 18:22:05 · 2821 阅读 · 0 评论 -
转载:各种数据类型在16位、32位和64位系统下所占字节差异简介
16位,32位,64位是指计算机内部一次bai性处理数据的位数,位du数越高,cpu处理数据能力zhi越强。计算机语言是用二进dao制来描述的。 也就是说,计算机识别一条信息时,它所识别的只是0和1这两个数而已。八位二进制数是最基本的计算机语言,一个八位二进制数也就是一个字节。比如:00001111、10000110、11011000,就分别代表不同的信息。8位之后,接下来就是16位,32位和64位。代表了计算机识别和处理数据以及信息的能力。编写C、C++程序时需要考虑每种数据类型在内存中所占的内存转载 2020-07-20 17:59:58 · 1452 阅读 · 0 评论