自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

giturtle's blog

stay hungry,stay foolish.

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

原创 从零学C++11

C++11上篇中篇下篇点击下面蓝色字体跳转超链接上篇【从零学C++11(上)】列表初始化、decltype关键字、委派构造等新特性中篇【从零学C++11(中)】移动语义、右值引用、std::move()、完美转发等新特性下篇【从零学C++11(下)】lambda表达式、线程库、原子操作库等新特性...

2019-12-17 13:10:16 244

原创 [C++] STL之树形结构关联式容器(map、set、multimap、multiset)

关联式容器引入键值对树形关联式容器map使用方法引入之前所学的序列式容器,其底层为线性序列的数据结构,里面存储的是元素本身。而关联式容器也是用来存储数据的,与序列式容器不同的是其里面存储的是< key , value >结构的键值对,在数据检索时比序列式容器效率更高。键值对键值对:用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代...

2019-08-20 00:28:06 7727

原创 [数据结构] C/C++重建二叉树

#pragma once#include "BinaryTree.h"#include <stdbool.h>bool isSame(Node*p, Node*q) { if (p == NULL && q == NULL) { return true; } if (p == NULL || q == NULL) { return false;...

2019-04-14 21:06:08 11024 1

原创 【图文解析】反转一个单链表

目录例题描述思路一代码实现分析思路二代码实现分析例题描述反转一个链表示例:输入: 1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5-&amp;gt;NULL输出: 5-&amp;gt;4-&amp;gt;3-&amp;gt;2-&amp;gt;1-&amp;gt;NULL结构体定义struct ListNode { int val; struct ListNode *next

2019-03-18 15:26:38 75532 32

原创 [C] 数组指针、指针数组及数组传参

指针字符指针数组指针指针数组在指针的学习阶段,有不少同学都十分畏惧这个物什,甚至“谈指针色变”。其实对指针的不理解,其实本质上是对内存的不理解,本篇博客就从零开始、系统的来讲解指针这个话题。首先我们应该明确以下的一些基础常识:指针是一个变量,用来存放地址,地址唯一标识一块内存地址。指针的大小是固定的4 或 8个字节。(32或64位平台)指针是有类型的,指针的类型决定了指针加减整数运算...

2019-01-30 18:30:31 13255 4

原创 [Linux] 什么是 段错误(吐核)?

吐核:突出了一个“核心转储文件”(core dump文件)也是使用gdb调试器最常用到的场景查看核心转储文件ll -a查看全部文件 +默认隐藏文件其实操作系统有限制,默认不允许随意吐核,影响机器性能ulimit -a查看与程序相关的属性core file size就是刚才吐核的核心转储文件,为0表示不允许吐核,更改一下文件大小为无限制ulimit -c unlimited再执行./h...

2018-12-29 00:56:41 58795 17

原创 浏览器原理思维导图

浏览器原理思维导图整理

2022-06-27 11:01:42 376 4

转载 [C++] 不申请额外空间,逆序一个栈

第一次看到题目的时候,自然会联想到用函数栈帧来代替栈的内存,从而达到不申请额外空间的效果。思路设定一个函数作为入口函数,接收原始stack数据。入口函数中调用一个接口,接口会提取栈的最底元素后返回,在入口函数中接收它,这样在这个栈帧中就保存了这个元素值,在后续的流程中第一个接收的元素会在顺序的最后重新压入。递归调用入口函数,让他继续对栈进行操作,进行后续“提取最底元素”。当栈所有的最底元素提取完,此时栈为空了,此时层层函数的栈帧中tail字段保存了原来栈每一层的元素,要进行重新入栈了。从递归调

2022-05-16 00:19:24 388

原创 [C++] 图结构

之间使用vector实现过简单的并查集,但在刷题过程中,发现有关于图的例题中其效率不是很高,因为需要轮询,下面介绍的这种图结构可以满足大部分需要,模板提供给大家。点结构class Node {public: int val; int in; // 入度: 指向此点的边个数 int out; // 出度: 从此点发出的边个数 vector<Node*> nexts; // 直接邻接点 vector<Edge*> edges; // 边 Node(int val

2022-05-11 22:33:09 738 1

原创 二叉树Morris遍历代码记录

morris序ListNode *morris(ListNode *head) { ListNode *cur = head; ListNode *mostRight = nullptr; while (cur != nullptr) { mostRight = cur->left; // 判断cur有无左树 if (mostRight != nullptr) { // 有左树,找到真实最右节点 while (mostRight->right != nullpt

2022-05-08 23:30:42 629 1

原创 [C++] JZ75 字符流中第一个不重复的字符

目录例题描述解题思路一:队列+bitmap代码实现解题思路二:双bitmap代码实现例题描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符 "go"时,第一个只出现一次的字符是"g" 。当从该字符流中读出前六个字符 “google"时,第一个只出现一次的字符是"l"。数据范围:字符串长度满足1≤n≤1000,字符串中出现的字符一定在ASCII码内。后台会用以下方式调用Insert和 FirstAppearingOnce函数string caseout

2022-03-22 23:30:28 717 1

原创 [C++] 局部反转链表

目录例题描述解题思路代码实现例题描述给定单链表的某一段区间,即传参为某两个节点,反转两节点区间之内的所有节点,对于区间外的节点不需操作。传参保证节点a对于节点b,一定在链表的上游。示例:对于某一链表:1->2->3->4->5->NULL,入参为节点值为2和5的节点地址a和b,调用完成后结果为:输出: 5->4->3->2结构体定义struct ListNode { int val; struct ListNode *next

2022-03-20 16:44:07 1409

原创 [C++] k个一组反转链表

目录例题描述解题思路代码实现例题描述此问题为反转单链表的引申问题之一,在单链表翻转的基础上增加一些边界控制,使链表完成k个节点一组的特殊化反转。最终返回反转后的链表头节点。这里给出原问题链接:【反转一个单链表】https://blog.csdn.net/qq_42351880/article/details/88637387此算法入参有两个:链表头节点、每组节点数k示例:输入: 1->2->3->4->5->6->NULL如果参数k = 2, 输

2022-03-20 16:01:20 1479 1

原创 [C++] JZ82/34/84 二叉树中和为某一值的路径

目录题目描述解题思路代码实现进阶:打印出每一条合法路径解题思路代码实现题目描述给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum的路径。该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点叶子节点是指没有子节点的节点路径只能从父节点到子节点,不能从子节点到父节点总节点数目为n例如:给出如下的二叉树返回true,因为存在一条路径 5→4→11→2的节点值之和为 22/数据范围:树上的节点数满足0 ≤ n ≤ 10000每个节点

2022-03-10 23:15:01 218 2

原创 [C++] 二叉搜索树的第k个节点

题目描述给定一棵结点数为n二叉搜索树,请找出其中的第k 小的TreeNode结点值。返回第k小的节点值即可不能查找的情况,如二叉树为空,则返回-1,或者k大于n等等,也返回-1保证n个节点的值不一样数据范围:0 ≤ n ≤ 10000,0 ≤ k ≤ 10000,树上每个结点的值满足0 ≤ val ≤ 1000。如输入{5,3,7,2,4,6,8},3时,二叉树{5,3,7,2,4,6,8}如下图所示:该二叉树所有节点按结点值升序排列后可得[2,3,4,5,6,7,8],所以第3个结点的

2022-03-09 22:31:34 1217

原创 VSCode搭建C++环境mingw64配置文件记录

launch.json{ "version": "0.2.0", "configurations": [ { "name": "g++.exe build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtens

2022-03-01 14:14:14 209

原创 我的/etc/motd 卡哇伊内~

效果见图:选中复制: ⣿⣆⠱⣝⡵⣝⢅⠙⣿⢕⢕⢕⢕⢝⣥⢒⠅⣿⣿⣿⡿⣳⣌⠪⡪⣡⢑ ⣿⣿⣦⠹⣳⣳⣕⢅⠈⢗⢕⢕⢕⢕⢕⢈⢆⠟⠋⠉⠁⠉⠉⠁⠈⠼⢐ ⢰⣶⣶⣦⣝⢝⢕⢕⠅⡆⢕⢕⢕⢕⢕⣴⠏⣠⡶⠛⡉⡉⡛⢶⣦⡀⠐ ⡄⢻⢟⣿⣿⣷⣕⣕⣅⣿⣔⣕⣵⣵⣿⣿⢠⣿⢠⣮⡈⣌⠨⠅⠹⣷⡀ ⡵⠟⠈⢀⣀⣀⡀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣼⣿⢈⡋⠴⢿⡟⣡⡇⣿⡇ ⠁⣠⣾⠟⡉⡉⡉⠻⣦⣻⣿⣿⣿⣿⣿⣿⣿⣿⣧⠸⣿⣦⣥⣿⡇⡿⣰ ⢰⣿⡏⣴⣌⠈⣌⠡⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣬⣉⣉⣁⣄⢖⢕ ⢻⣿⡇⢙⠁⠴⢿⡟⣡⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿

2021-11-29 14:48:27 519

原创 Docker学习笔记总结

Docker一、Docker介绍1.1 引言环境不一致问题,多用户操作系统下会互相影响,运维成本过高问题,关于安装软件成本过高等。1.2 Docker的思想集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿这个集装箱就可以。标准化:运输的标准化:Docker有一个中央码头,所有上传的集装箱都放在这个中央码头。当需要某一环境,就直接指派“大海豚”去搬运这个集装箱。命令的标准化:Docker提供了一系列的命令,帮助我们去获取\上传集装箱等操作。提供了RES

2021-08-23 23:48:16 654 3

转载 Shell脚本获取变量类型

function check(){ local a="$1" printf "%d" "$a" &>/dev/null && echo "integer" && return printf "%d" "$(echo $a|sed 's/^[+-]\?0\+//')" &>/dev/null && echo "integer" && return printf "%f" "$a" &am

2021-06-15 16:30:35 1957

原创 浏览器前端:当输入地址时浏览器是如何反应的?

流程当在地址栏输入地址时:浏览器进程的UI线程会捕捉输入内容。如果访问的是网址,则UI线程会启动一个网络线程模块,请求DNS进行域名解析。之后开始连接服务器获取数据。当网络线程获取到数据后,会通过SafeBrowsing来检查站点是否是安全站点。如果是,则会提示警告页面,告诉用户这个站点存在安全问题,浏览器会组织访问,用户可以强行继续访问。SafeBrowsing 是谷歌内部的一套站点安全系统,通过检测该站点的数据来判断是否安全。(比如通过查看该站点的IP是否在谷歌的黑名单中)

2021-03-28 15:31:33 364

原创 MySQL数据库导入导出小记

前提:保证MySQL服务已启动。1. 导出mysql数据表mysqldump -u 用户名 -p 数据库名 > 导出的文件名bash-4.1# mysqldump -u admin -p sgbase CloudServer > CloudServer.sql Enter password:bash-4.1#2. lrzsz导出文件bash-4.1# sz CloudServer.sql 3. 需要导入库的服务器导入sql文件bash-4.1# rz4. 导入

2021-01-25 16:07:27 173

原创 SecureCRT报错:keyboard-interactive authentication with the ssh2 server failed

现象描述平时在使用secureCRT平台SSH远程登陆会话时经常会弹窗如图问题,每次选择Skip跳过再进行操作比较麻烦,思考成因并希望取消此弹窗。问题成因图中译文为:与SSH2服务器的键盘交互身份验证失败。在当前设置下,作为会话登陆的身份验证方式,键盘交互的优先级高于已保存密码登陆的方式。所以点击OK后会让用户重新配置:解决方法选择 Menu bar 中的 Session Options 选项,进行会话设置。选择Password,上箭头亮起。点击上箭头,将此会话中验证方式Passwo

2020-11-19 15:08:21 15852 2

原创 【Java】代码块

字段的初始化方式有:就地初始化使用构造方法初始化使用代码块初始化前两种方式前面已经学习过了, 接下来我们介绍第三种方式使用代码块初始化什么是代码块使用{}定义的一段代码.根据代码块定义的位置以及关键字,又可分为以下四种:普通代码块构造块静态块同步代码块(后续讲解多线程部分再谈)...

2020-02-29 23:17:21 182

原创 【Java】数组 (引用类型 与 JVM初识)

数组数组基本语法下标越界for-each 遍历数组数组基本语法// 动态初始化数据类型[] 数组名称 = new 数据类型 [长度] { 初始化数据 };// 静态初始化数据类型[] 数组名称 = { 初始化数据 };//动态初始化示例:int[] arr = new int[3]{1, 2, 3};//静态初始化示例:int[] arr = {1, 2, 3};...

2020-01-10 23:49:12 265

原创 【Java】方法和包

方法什么是方法?基本语法使用规则方法的重载重载的规则什么是方法?方法的本质就是一个代码片段, 类似于 C 语言中的 函数。它存在的意义为:是能够模块化的组织代码(当代码规模比较复杂的时候)。做到代码被重复使用, 一份代码可以在多个位置使用。让代码更好理解更简单。直接调用现有方法开发, 不必重复造轮子。请看问题:输出 1! + 2! + 3! + 4! + 5! 的值。传...

2020-01-04 14:06:27 331

原创 【Java】特色的变量类型与运算符

数据类型与运算符变量和类型变量和类型变量指的是程序运行时可变的量,相当于开辟一块内存空间来保存一些数据。类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性。...

2020-01-04 13:13:26 509

转载 从进程、线程过渡:理解协程

进程、线程、协程进程线程协程协程与线程的比较进程进程是一个程序在一个数据集中的一次动态执行过程,可以理解为“正在执行的程序”。进程一般由程序集、数据集、进程控制块三部分组成。进程是系统进行资源分配和调度的基本单位,是操作系统的基础。进程是线程的容器,进程是程序的实体。程序集:描述进程要完成哪些功能以及如何完成数据集:程序在执行过程所需要使用的资源进程控制块:保存程序运行的状态进程的...

2019-12-03 20:04:03 252

原创 UML学习手记

UML简介常见UML图1. 用例图2. 序列图3. 类图UML建模工具简介统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。常见UML图1. 用例图(The Use Case Diagram)用...

2019-11-19 10:35:59 299

原创 【从零学C++11(中)】移动语义、右值引用、std::move()、完美转发等新特性

C++118. 默认函数控制显式缺省函数删除默认函数9. 右值引用【★】移动语义C++11中的右值右值引用std::move()注意点完美转发8. 默认函数控制在C++中对于空类编译器会生成一些默认的成员函数,比如:构造函数、拷贝构造函数、运算符重载、析构函数、&和const&的重载、移动构造、移动拷贝构造等函数。如果在类中显式定义了,编译器将不会重新生成默认版本。有时候这...

2019-11-14 10:31:08 371

原创 [C++] 864 -- 最难的问题

目录例题描述解题思路代码实现一代码实现例题描述tom生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是军团中的一名军官,需要把发送来的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A 都分别替换成字母F),其他字符不变,并且消息原文的所有字母都是大写的。密码中的字母...

2019-10-24 09:40:42 378

原创 【C++】字符串的排列与组合 代码实现

排列void permutation(char* str) { if (str == nullptr) return; _Permutation(str, str);}void _Permutation(char* str, char *begin) { if (*begin == '\0') printf("%s\n", str); else { for (char* ...

2019-10-06 14:40:44 1083

原创 宏 实现 sizeof

sizeof操作符其实就是判断元素的字节数,那么很容易联想到指针的偏移量,所以尝试使用下面这种方式实现:#define my_sizeof(x) ((&x + 1) - &x)但问题是,无论如何输出都是1,为什么呢?因为指针减法的结果是元素个数而不是字节。,所以只需强转为按字节计算即可。#define my_sizeof(x) ((char*)((&x) + 1) ...

2019-09-11 10:56:44 534

原创 成员的初始化 表格

初始化方式类内(声明)类外(实现文件)构造函数中构造函数的初始化列表类型非静态非常量数据成员NNYY非静态常量数据成员NNNY(must)静态非常量数据成员NY(must)NN静态常量数据成员YYNN构造函数中,成员变量一定要通过初始化列表来初始化的是:const成员引用成员需要类外初始化的是static成...

2019-09-11 00:19:09 120

原创 【360笔试题】输出字符串中出现最多子串的次数

例如:输入aba,输出1–> a输入abcdab,输出2–>ab思路:切割出的子串放入unordered_map,遍历一遍元素找出最大值。#include <iostream>#include <string>#include <unordered_map>using namespace std;int main(){ s...

2019-08-31 20:32:39 305

原创 [C++] 36884 -- 查找组成一个偶数最接近的两个素数

目录例题描述解题思路代码实现例题描述任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。示例1:输入20输出7 13解题思路本题首先需要判断素数,素数表示除过1和本身,不能被其它数整除。通过循环遍历来判断一个数是否为素数。最近的两个素数应该从最中间的位置开始向两边查找。代码实现#incl...

2019-08-29 23:49:52 312

原创 [C++] 24951 -- 二进制插入

目录例题描述解题思路代码实现例题描述有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。示例1:输入1024,19,2,6输出1100解题思...

2019-08-29 23:42:06 183

原创 [C++] 36910 -- 求最大bit数

目录例题描述解题思路代码实现例题描述功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1输入: 一个byte型的数字输出: 无返回: 对应的二进制数字中1的最大连续数示例1:输入3输出2解题思路根据位运算,获取每一位的二进制值。获取第i位的值: (n >> i) & 1。如果...

2019-08-29 23:10:37 276

原创 [C++] 24979 -- 最近公共祖先

目录例题描述解题思路代码实现例题描述有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。请设计一个算法,求出a和b点的最近公共祖先的编号。给定两个int a,b。为给定结点的编号。请返回a和b的最近公共祖先的编号。注意这里结点本身也可认为是其祖先。示例1:输入:2,3输出:1解题思路满二叉树中子节点与父节点之间的关系为r...

2019-08-29 22:54:56 367

原创 C++实现一个 Date (日期)类

DateDate.hDate.cppDate.h#pragma once#include <iostream>#include <assert.h>using std::cout;using std::endl;class Date{public: inline int GetMonthDay(int year, int month) const{...

2019-08-29 22:07:49 334

原创 【从零学C++11(下)】lambda表达式、线程库、原子操作库等新特性

C++1110. lambda表达式【★】语法捕获列表函数对象与lambda表达式对比11. 线程库【★】线程的启动线程的结束原子性操作库(atomic)10. lambda表达式【★】例如在C++98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法,具体如下:#include <algorithm>#include <functional...

2019-08-29 19:19:09 577

空空如也

空空如也

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

TA关注的人

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