2 "爱"编程的小朋友

尚未进行身份认证

未来可期

等级
TA的排名 11w+

【C++】弱智能指针weak_ptr详解

在最早有介绍关于智能指针的博文,但并未深入探讨弱智能指针的存在,这是简单提到它是来配合强智能指针一起使用,且不可以单独使用,所以对于弱智能指针它的作用就是解决强智能指针之间的相互引用而存在的。https://blog.csdn.net/IT_Mitchell/article/details/86615669那,本文主要介绍关于弱智能指针weak_ptr的一些东西;关于weak_ptr,we...

2019-10-09 20:13:38

【剑指offer】字符串翻转以及左旋转字符串

题目一:字符串翻转题目描述: 输入一给英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如:输入“I am a student.”,输出为“student. a am I”;思路:第一步:对整个字符串进行逆置,例如就是将“I am a student.”逆置为".tneduts a ma I" 第二步:对句子中的每个单词在进行逆...

2019-10-07 15:41:23

【剑指offer】栈和队列相关题目——后序会补充

题目一:两个栈实现一个队列;也就是利用栈的先进后出实现队列的先进先出特性;这里实现的接口有:入队、出队;基本思路:利用两个栈实现队列,也就是说利用栈的先进后出的规则实现队列的先进先出;那么,如图: 因此,对于函数appendTail,只需要对stack1进行入栈操作即可;对于函数deleteHead,当stack2不为空时,stack2的栈顶元素就是最先进入队列的元素,将其出队就;...

2019-10-06 18:40:56

【剑指offer】面试题12:回溯法——矩阵中的路径

面试题12:矩阵中的路径题目:请设计一个函数,用来判断在一个矩阵中是否在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵的上、下、左、右移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入格子。例如:在下面的3X4的矩阵中包含一条字符串“bfce”的路径。但矩阵中不包含字符串“abfb”的路径,因为字符串的每一个字符b占据了矩阵中的第一行第二个格...

2019-10-06 17:51:54

【剑指offer】面试题15:二进制中1的个数

总结总结以前写过的一些题目吧。。。。回顾题目:请实现一个函数,输入一个整数,输出该数二进制表示的1的个数。例如,9的二进制是1001,有2位是1.因此,如果输入时9,则输出就是2.思路: 方法一: 整型数据除法 该整数除2,原来的数字将会减少一个0; 若有余数,则表示当前位置有一个1;int Count(int data){ int n...

2019-10-06 17:44:16

【C++】class和struct的区别

语法上,class和struct做类型定义时只有两点区别:默认继承权限,如果不指定,来自class的继承默认是按照private继承处理,来自struct的继承默认是按照public继承处理; 成员的默认访问权限:class默认是private,struct默认的是public; “class”这个关键字还用于定义模板参 数,就像“typename”。但关键字“struct”不用于定义模板...

2019-10-02 12:51:41

【Leetcode】100.相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...

2019-09-14 15:13:17

【STL】容器(二)——set和map简单了解

一、set单重集合和multiset多重集合(一)set和multiset的简述Set是我们所说的单重集合。Set是一类数据的集合,一个有序集合,也就是说它里边的元素都是排好序的,并且set不允许插入的元素重复。Set支持插入删除查找等操作,它的所有操作都能在(logN)的时间复杂度内完成,效率很高。Multiset与set的区别就在于,multiset允许插入的元素重复。(二)set...

2019-09-01 20:33:43

【STL】vector的一些API详解

在容器(一)中有简单介绍我们的vector容器。在本节,主要讲解关于vector的一些API。vector是我们STL中的一种顺序容器,它的底层是用数组实现的,所以vector的内存无论是在物理上还是在逻辑上都是连续的。它也可以像数组一样进行操作,例如按照下标访问元素,vector<int> vec(1,0); vec[0];访问0号下标的元素。另外,那对于vector还有哪些我...

2019-09-01 20:27:51

【Linux】fork函数详解以及与vfork的区别

fork()函数是用来通过一个现有的进程创建一个新进程。一、简述fork()函数1、函数原型:pid_t fork(void);2、返回值:0 返回到子进程中 >0 给父进程返回新子进程的进程ID; -1 出错3、两个问题:为什么子进程中返回0?为什么要向父进程中返回新子进程的进程ID?...

2019-08-31 19:02:56

【STL】容器(一)——顺序容器vector、list、deque(初级简单了解)

目录一、vector(一)对于vector容器的插入删除以及访问的研究:(二)vector的扩容机制(三)优缺点二、list(一)对于list插入删除以及访问的研究:(二)list的优缺点三、deque(一)对于deque容器的插入删除操作以及访问的研究(二)deque的扩容机制(三)优缺点四、vector和deque的区别一、vectorV...

2019-08-31 18:52:24

【Linux】Linux虚拟地址空间布局以及进程栈和线程栈总结

整篇文章均转自:https://blog.csdn.net/FreeeLinux/article/details/53782986

2019-08-31 11:09:54

从00000000000000000000000000000000到11111111111111111111111111111111

分水岭不好——————————————————————————————————————————————好晚安!!!

2019-08-30 00:32:38

【数据结构】——BST二叉搜索树

BST树——二叉平衡/搜索树它的特点是:左孩子的值 < 根的值;根的值 < 右孩子的值; 所有关键码的结点都不相同; 左右子树也都是二叉搜索树; 并且BST树不一定是一棵完全二叉树。对这样一棵二叉搜索树,进行中序遍历,可以按从小到大的顺序将各节点关键码排列起来,所以也称二叉搜索树为二叉排序树。1、定义二叉搜索树的结构结点结构:typedef int Ke...

2019-08-30 00:27:34

【算法】页面置换算法FIFO、LRU和LFU的概述以及实现方式

页面置换算法,我们最常用的页面置换算法包括FIFO先来先服务,LRU最近最久未被使用,LFU最近最少被使用以及我们的时钟置换算法。一、FIFO算法——先来先服务1、简述FIFO算法FIFO算法是我们比较简单的置换算法,就是先来先服务或者说是先进先出。也就是说在进行页面置换的时候,最先来的那个会被最先置换出去。先进入的指令先完成并引退,跟着才执行第二条指令。2、FIFO算法的简单...

2019-08-27 15:03:13

【LeetCode】957.N天后的牢房

题目描述:8 间牢房排成一排,每间牢房不是有人住就是空着。每天,无论牢房是被占用或空置,都会根据以下规则进行更改:如果一间牢房的两个相邻的房间都被占用或都是空的,那么该牢房就会被占用。否则,它就会被空置。(请注意,由于监狱中的牢房排成一行,所以行中的第一个和最后一个房间无法有两个相邻的房间。)我们用以下方式描述监狱的当前状态:如果第 i 间牢房被占用,则 cell[i]==1,...

2019-08-25 20:16:17

【Leetcode】3.无重复字符的最长子串

题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...

2019-08-25 20:16:11

【c++】浅拷贝、深拷贝和写时拷贝

本文将写时拷贝、浅拷贝和深拷贝进行对比。利用string类来进行解释。一、浅拷贝和深拷贝1、浅拷贝浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。浅拷贝,当类里面有指针对象时,拷贝构造和赋值运算符重载都只进行值拷贝(浅拷贝),两个对象指向同一块内存,对象销毁时该空间被释放了两次,因此程序崩溃。释放的时候原来的指针会对该内存块进行释放,当新的指针再进...

2019-08-25 20:15:30

【c++】设计模式——观察者模式

三、Observe模式(观察者模式)Observe模式分为观察者和监听者两种角色。观察者:观察事件;并且通知对于该事件感兴趣的监听者;(也就是两件事,一是注册事件、regsitermessage;二是发布事件,handlemessage);监听者:处理事件;Observe的一个实例model/view/control(MVC)在系统开发架构设计中有着很重要的地位和意义,MVC实现了...

2019-08-20 13:42:55

【c++】设计模式——简单工厂模式、工厂模式和抽象工厂模式

Factory模式的两个最重要的功能:(1)定义创建对象的接口,封装了对象的创建;(2)使得具体化类的工作延迟到子类当中;(一)简单工厂模式简单工厂模式是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。简单工厂模式的结构图:Factory Pattern是我们的工厂类,它里边有n多条生产线,每条生产线对应不同的类,生产不同的东西。对于用户,用户...

2019-08-20 13:40:31

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。