自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

COOL_jack的博客

学习编程的记录

  • 博客(94)
  • 资源 (8)
  • 收藏
  • 关注

原创 大话数据结构之二叉搜索树

大话数据结构之二叉搜索树的c++实现

2023-01-11 15:35:39 148

原创 大话数据结构之二叉树c++实现

程杰 大话数据结构之二叉树c++实现

2022-12-21 17:42:48 162

原创 c++文件操作

c++文件操作基础知识

2022-10-22 22:39:36 877

原创 Linux-用户和用户组

Linux下用户和用户组基础知识及相关命令

2022-10-08 22:11:17 575

原创 c++11并发与多线程

第五节 互斥量概念、用法、死锁演示及解决详解(1)互斥量(mutex)的基本概念(2)互斥量的用法(2.1)lock(),unlock()(2.2)std::lock_guard类模板(3)死锁(3.1)死锁演示(3.2)死锁的一般解决方案(3.3)std::lock()函数模板(3.4)std::lock_guard的std::adopt_lock参数第六节 unique_lock详解(1)unique_lock取代lock_guardunique_lock是一个类模板,工作中

2021-11-07 22:57:18 561

原创 C/C++面经

目录C/C++形参和实参(区别、背后实现过程)、返回值内存变量指针和引用语言函数类构造函数拷贝、赋值继承重载运算符关键字const宏定义overload、override、overwrite访问权限volatilestatic转换模板网络编程调试算法?C/C++2、结构体内存对齐问题?形参和实参(区别、背后实现过程)、返回值4、在传递函数参数时,什么时候该使用指针,什么时候该使用引用呢?45、形参与实参的区别?46、值传递、指针传递、引用传递的区别和效率77、C++中的指针参数传递和引用参数传

2021-10-11 22:34:58 357

原创 刷题笔记(9)---排序

目录排序算法冒泡排序迭代递归选择排序迭代递归插入排序希尔排序快速排序(递归)归并排序迭代递归堆排序计数排序桶排序基数排序排序算法冒泡排序迭代递归选择排序迭代递归插入排序希尔排序快速排序(递归)归并排序迭代递归堆排序计数排序桶排序基数排序...

2021-09-20 19:35:47 137

原创 刷题笔记---动态规划

目录动态规划二级目录动态规划入门509. 斐波那契数70. 爬楼梯343. 整数拆分96.不同的二叉搜索树(××)01背包问题416. 分割等和子集(××)494. 目标和(××)474.一和零(××)完全背包问题动态规划二级目录1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组动态规划入门509. 斐波那契数// An highlighted blockvar foo = 'bar';70. 爬楼梯//

2021-09-09 15:52:37 81

原创 刷题笔记(7)---回溯

目录回溯组合问题77. 组合216. 组合总和 III17. 电话号码的字母组合39. 组合总和40.组合总和II(很重要,未学习)回溯组合问题77. 组合class Solution {private: vector<int> path; // 用来存放符合条件结果 vector<vector<int>> result; // 存放符合条件结果的集合 void backtracking(int n, int k, int sta

2021-08-28 23:27:46 155

原创 刷题笔记(6)---哈希表

目录哈希表二级目录三级目录242. 有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和15. 三数之和(没看懂)18. 四数之和哈希表二级目录三级目录242. 有效的字母异位词class Solution {public: bool isAnagram(string s, string t) { int record[26] = {0}; for(int i=0; i<s.size(); ++i) { record[s[i] -

2021-08-26 23:13:56 110

原创 刷题笔记(5)---字符串

目录字符串二级目录三级目录344. 反转字符串541. 反转字符串 II剑指 Offer 05. 替换空格151. 翻转字符串里的单词剑指 Offer 58 - II. 左旋转字符串KMP(未仔细学习过)28. 实现 strStr()字符串二级目录三级目录344. 反转字符串class Solution {public: void reverseString(vector<char>& s) { int l = 0, r = s.size() - 1;

2021-08-26 15:29:30 97

原创 刷题笔记(4)---数组

目录一级目录二级目录三级目录27. 移除元素26.删除排序数组中的重复项一级目录二级目录三级目录27. 移除元素class Solution {public: int removeElement(vector<int>& nums, int val) {/* for(vector<int>::iterator it = nums.begin(); it!=nums.end(); ++it) { i

2021-08-25 20:35:30 191

原创 刷题笔记(3)---二叉树

目录二叉树二级目录110. 平衡二叉树98. 验证二叉搜索树572. 另一棵树的子树104. 二叉树的最大深度二叉树二级目录110. 平衡二叉树链接: 110. 平衡二叉树.class Solution {public: int level(TreeNode* root) { if (root == nullptr) { return 0; } return max(level(root-

2021-08-22 15:51:33 397

原创 刷题笔记(2)---栈和队列

目录栈和队列栈的用途队列的用途1. 通过stack实现特殊顺序的读取232. 用栈实现队列面试题 03.05. 栈排序“save or later”问题20. 有效的括号3. ⽤stack解决Top-Down结构的问题栈和队列栈的用途可以⽤Stack作为辅助,实现深度优先算法(Depth first search,DFS),或者将递归转为while循环递归本⾝就是相当于把函数本⾝⼀层⼀层加到操作系统的内存栈上⼊栈操作相当于递归调⽤⾃⾝,出栈操作相当于递归返回。队列的用途我们可以⽤Queue作为辅

2021-08-21 23:30:10 114

原创 刷题笔记(1)---链表

目录一级目录链表83. 删除排序链表中的重复元素82. 删除排序链表中的重复元素 II追赶指针技巧876. 链表的中间结点剑指 Offer 22. 链表中倒数第k个节点141. 环形链表142. 环形链表 II一级目录链表83. 删除排序链表中的重复元素链接: 83.删除排序链表中的重复元素.class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if(head == nullptr)

2021-08-21 19:57:56 163

原创 来探一探C++的引用

这里写目录标题创建引用变量引用用作函数参数按值传递与按引用传递使用const的理由引用用作类对象何时使用引用参数创建引用变量1. 引用是已定义变量的别名(另一个名称)。 定义引用的一般格式:类型 &引用名 = 变量名; 例如:int a = 1; int &ra = a; // b是a的别名,因此a和b是同一个单元 注意:定义引用时一定要初始化,指明该引用变量是谁的别名。 2. 引用的主要用途: 2.1 用作函数的形参(主要指结构和对象参数)。通

2021-07-30 15:51:19 80

原创 TCP三次握手和四次挥手------抓包实验

这里写目录标题实验准备与介绍TCP三次握手和四次挥手演示TCP的连接的建立与关闭TCP 三次握⼿异常情况分析TCP 第⼀次握⼿的 SYN 丢包了,会发⽣什么?问题1:我的测试结果是重连了4次,但是内核定义为6,这是为什么呢?实验一小结TCP 第⼆次握⼿的 SYN、ACK 丢包了,会发⽣什么?问题2:我的测试结果是重连了3次,但是内核定义为2,这是为什么呢?实验二小结TCP 第三次握⼿的 ACK 包丢了,会发⽣什么?实验三小结实验准备与介绍阿里云服务器(IP:106.14.165.89)虚拟机客户端(I

2021-07-29 21:28:15 1282

原创 虚函数与多态(二)

这里写目录标题纯虚函数抽象类演示第5条多态虚析构函数纯虚函数1.虚函数是实现多态性的前提 1.1需要在基类中定义共同的接口 1.2接口要定义为虚函数2.如果基类的接口没办法实现怎么办? 如形状类Shape3解决办法 将这些接口定义为纯虚函数抽象类1.在基类中不能给出有意义的虚函数定义,这时可以把它说明成纯虚函数,把它的定义留给派生类来做2.定义纯虚函数: class 类名{ virtual 返回值类型 函数名(参数表) = 0;};3.纯虚函数不需实现。4.作用

2021-07-26 22:46:02 105

原创 虚函数与多态(一)

这里写目录标题多态静态绑定与动态绑定虚函数虚析构函数虚表指针基类派生类object slicing与虚函数overload、override、overwrite多态1.多态性是面对对象程序设计的重要特征之一。2.多态性是指发出同样的消息被不同类型的对象接收时可能导致完全不同的行为。3.多态的实现: 3.1函数重载 3.2运算符重载 3.3模板 3.4虚函数静态绑定与动态绑定1.静态绑定 绑定过程出现在编译阶段,在编译期就已经确定要调用的函数。 2.动态绑定 绑定过程工作在程

2021-07-26 21:28:05 201

原创 虚继承对C++对象内存模型造成的影响

这里写目录标题回顾类/对象大小计算虚基类表回顾类/对象大小计算虚基类表1.virtual base table 1.1本类地址与虚基类表指针地址的差 1.2虚基类地址与虚基类表指针地址的差 2.virtual base table pointer(vbptr)#include <iostream>using namespace std;class BB{public: int bb_;};class B2 : virtual public BB{pub

2021-07-26 20:25:58 167 2

原创 继承(二)

目录转换与继承派生类到基类的转换基类到派生类的转换多重继承虚继承与虚基类虚基类及其派生类构造函数转换与继承派生类对象也是基类对象。这意味着在使用基类的地方可以用派生类来替换。派生类到基类的转换1.当派生类以public方式继承基类时,编译器可自动执行的转换(向上转换upcasting安全转换) 1.1 派生类对象指针自动转化为基类对象指针 1.2 派生类对象引用自动转化为基类对象引用 1.3 派生类对象自动转化为基类对象(特有的成员消失) 2.当派生类以private/protected

2021-07-26 19:23:20 88

原创 继承(一)

目录代码重用继承公有、私有、保护继承默认继承保护级别接口继承与实现继承继承与重定义继承与组合不能自动继承的成员函数继承与构造函数友元关系与继承静态成员与继承代码重用C++很重要的一个特征就是代码重用。在C语言中重用代码的方式是拷贝代码、修改代码。C++中可以用继承或组合的方式来重用。通过继承或组合现有的类来创建新类,而不是重新创建它们。继承1.继承是使用已经编写好的类来创建新类,新的类具有原有类的所有属性和操作,也可以在原有类的基础上做一些修改和增补。2.新类称为派生类或子类,原有类称为基类或

2021-07-25 22:05:42 109

原创 运算符重载(二)

目录++运算符重载前置++运算符重载后置自增和后置自减的重载!运算符重载赋值运算符重载++运算符重载前置++运算符重载1.成员函数的方式重载,原型为: 函数原型 & operator ++(); 2.友元函数的方式重载,原型为: friend 函数原型 & operator ++(类类型 &);后置自增和后置自减的重载1.成员函数的方式重载,原型为: 函数原型 operator ++(int); 2.友元函数的方式重载,原型为: friend 函数原型

2021-07-25 17:49:08 67

转载 运算符重载(一)---成员/非成员函数重载

目录运算符重载成员函数重载Complex.hComplex.cppmain非成员函数重载Complex.hComplex.cpp运算符重载规则运算符重载1.运算符重载允许把标准运算符(如+、-、*、/、>等)应用于自定义数据类型的对象2.直观自然,可以提高程序的可读性3.体现了C++的可扩充性4.运算符重载仅仅只是语法上的方便,它是函数调用的方式5.运算符重载,本质上是函数重载6.不要滥用重载、因为它只是语法上的方便,所以只有在涉及的代码更容易写、尤其是更易读时才有必要重载。

2021-07-24 09:33:48 1212

原创 对象的使用(三)---mutable/const对象/const成员函数

目录const成员函数const对象mutableconst汇总const成员函数1.const 成员函数不会修改对象的状态2.const成员函数只能访问数据成员的值,而不能修改它const对象1.如果把一个对象指定为const,就是告诉编译器不要修改它2.const对象的定义 2.1const 类名 对象名(参数表); 3.const对象不能调用非const成员函数mutable用mutable修饰的数据成员即使在const对象或在const成员函数中都可以被修改。#in

2021-07-24 08:35:44 180

原创 static与单例模式

目录static与单例模式演示1演示2线程安全的单例模式类的实现static与单例模式1.保证一个类只有一个实例,并提供一个全局访问点2.禁止拷贝演示1#include <iostream>using namespace std;class Singleton{public: static Singleton* GetInstance() { if (instance_ == NULL) { instance_ = new Singleton; }

2021-07-24 08:06:12 265

原创 对象的使用(二)---static关键字

目录static函数用法四种对象的作用域与生存期static用法总结演示2(internal linkage)演示2(external linkage)演示static函数用法#include <iostream>using namespace std;class Date{public: Date(int year) : year_(year) { } static bool IsLeapYear(int year) { return (year % 4 ==

2021-07-24 00:43:21 72

原创 对象的使用(一)---static关键字

目录static成员演示第1条CountedObject.hCountedObject.cppmain演示第6条static成员函数类/对象大小计算static成员1.对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量。比如说统计某种类型对象已创建的数量。2.如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,这时我们可以用类的静态成员来解决这个问题。3.非static数据成员存在于类类型的每个对象中,static数据成员独立该类的任意对象存在,它是与类关联的对象,不

2021-07-23 23:14:42 139

原创 构造函数与析构函数(四)---深拷贝与浅拷贝

目录深拷贝与浅拷贝浅拷贝String.hString.cppmain深拷贝String.hString.cppmain赋值操作深拷贝String.hString.cppmain禁止拷贝空类默认产生的成员深拷贝与浅拷贝浅拷贝String.h#ifndef _STRING_H#define _STRING_Hclass String{public: String(const char* str = nullptr); ~String(); void Display();private

2021-07-23 22:19:11 213

原创 构造函数与析构函数(三)---构造函数

目录构造函数初始化列表对象成员及其初始化const成员、引用成员初始化枚举拷贝构造函数拷贝构造函数调用的几种情况构造函数初始化列表1.推荐在构造函数初始化列表中进行初始化2.构造函数的执行分为两个阶段 2.1 初始化段 2.2 普通计算段对象成员及其初始化#include <iostream>using namespace std;class Object{public: Object(int num) : num_(num) { cout << "

2021-07-23 20:50:49 113

原创 构造函数与析构函数(二)

目录头文件Test.h实现文件Test.cpp转换构造函数赋值与初始化区别explicit头文件Test.h#pragma onceclass Test{public: Test(); Test(int num); ~Test(); void Display(); Test& operator=(const Test& other);private: int num_;};实现文件Test.cpp#include "Test.h"#include &

2021-07-23 16:45:13 76

原创 构造函数与析构函数(一)

目录头文件Test.h实现文件Test.cpp构造函数默认构造函数重载构造函数构造函数与new运算符newnew operatoroperator new全局对象的构造先于main函数析构造函数析构函数与数组析构函数与delete运算符析构函数可以显示调用头文件Test.h#pragma onceclass Test{public: Test(); Test(int num); ~Test(); void Display();private: int num_;};实现文件

2021-07-23 15:55:31 115

转载 云中网络的隔离GRE、VXLAN:虽然住一个小区,也要保护隐私

对于云平台中的隔离问题,前面咱们用的策略一直都是 VLAN,但是我们也说过这种策略的问题,VLAN 只有 12 位,共 4096 个。当时设计的时候,看起来是够了,但是现在绝对不够用,怎么办呢?一种方式是修改这个协议。这种方法往往不可行,因为当这个协议形成一定标准后,千千万万设备上跑的程序都要按这个规则来。现在说改就放,谁去挨个儿告诉这些程序呢?很显然,这是一项不可能的工程。另一种方式就是扩展,在原来包的格式的基础上扩展出一个头,里面包含足够用于区分租户的 ID,外层的包的格式尽量和传统的一样,依然兼容

2021-07-13 12:38:54 699

转载 软件定义网络:共享基础设施的小区物业管理办法

目录软件定义网络(SDN)OpenFlow 和 OpenvSwitchSDN实验一:用 OpenvSwitch 实现 VLAN 的功能实验二:用 OpenvSwitch 模拟网卡绑定,连接交换机如何在云计算中使用 OpenvSwitch?小结上一节我们说到,使用原生的 VLAN 和 Linux 网桥的方式来进行云平台的管理,但是这样在灵活性、隔离性方面都显得不足,而且整个网络缺少统一的视图、统一的管理。可以这样比喻,云计算就像大家一起住公寓,要共享小区里面的基础设施,其中网络就相当于小区里面的电梯、楼道

2021-07-11 22:43:52 194

转载 云中网络:自己拿地成本高,购买公寓更灵活

这里写目录标题虚拟网卡的原理虚拟网卡连接到云中共享与互通问题隔离问题小结前面我们讲了,数据中心里面堆着一大片一大片的机器,用网络连接起来,机器数目一旦非常多,人们就发现,维护这么一大片机器还挺麻烦的,有好多不灵活的地方。采购不灵活:如果客户需要一台电脑,那就需要自己采购、上架、插网线、安装操作系统,周期非常长。一旦采购了,一用就 N 年,不能退货,哪怕业务不做了,机器还在数据中心里留着。运维不灵活:一旦需要扩容 CPU、内存、硬盘,都需要去机房手动弄,非常麻烦。规格不灵活:采购的机器往往动不动几

2021-07-11 22:28:33 80

原创 哈希表实现---C语言版

目录声明代码实现运行结果声明以下内容仅供学习,如有侵权,联系作者删除。参考文献:王道考研系列数据结构、B站up主:C语言技术网链接: C语言技术网代码实现/* * 程序名:hash.c,此程序演示哈希表的实现,数据元素单链表带头结点。 * 作者:jack 日期:20210711 * 参考作者:C语言技术网(www.freecplus.net), B站UP主:C语言技术网*/#include <stdio.h>#include <stdlib.h>#inclu

2021-07-11 14:48:47 1477

转载 数据结构与算法---第四阶段知识总结

2021-07-11 14:02:44 66

转载 60 天攻克数据结构与算法

目录在这篇文章里,对专栏内容重新做了一次梳理,将整个专栏拆分成四个阶段,列出了每个阶段的核心知识点、标注了每个知识点的难易程度(E-Easy,M-Medium,H-Hard),并用 1-10 分说明其重要性。...

2021-07-11 14:02:20 112

转载 UDP协议:因性善而简单,难免碰到“城会玩”

目录TCP 和 UDP 有哪些区别?UDP 包头是什么样的?UDP 的三大特点UDP 的三大使用场景基于 UDP 的“城会玩”的五个例子“城会玩”一:网页或者 APP 的访问“城会玩”二:流媒体的协议“城会玩”三:实时游戏“城会玩”四:IoT 物联网“城会玩”五:移动通信领域小结讲完了 IP 层以后,接下来我们开始讲传输层。传输层里比较重要的两个协议,一个是 TCP,一个是 UDP。对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议。由于面试的时候,这两个协议经常会被放在一起问

2021-07-11 13:50:07 274

转载 TCP协议(上):因性恶而复杂,先恶后善反轻松

目录TCP 包头格式TCP 的三次握手TCP 四次挥手TCP 状态机小结上一节,我们讲的 UDP,基本上包括了传输层所必须的端口字段。它就像我们小时候一样简单,相信“网之初,性本善,不丢包,不乱序”。后来呢,我们都慢慢长大,了解了社会的残酷,变得复杂而成熟,就像 TCP 协议一样。它之所以这么复杂,那是因为它秉承的是“性恶论”。它天然认为网络环境是恶劣的,丢包、乱序、重传,拥塞都是常有的事情,一言不合就可能送达不了,因而要从算法层面来保证可靠性。TCP 包头格式我们先来看 TCP 头的格式。从这个图

2021-07-11 13:49:43 97

cmake-3.14.5.tar.gz

cmake-3.14.5

2021-06-27

20191117-CMake的应用与实践.pdf

CMake的应用与实践

2021-06-27

高性能计算之并行编程技术—— MPI并行程序设计.pdf

高性能计算之并行编程技术—— MPI并行程序设计

2021-06-27

mpich-3.2.1-installguide.pdf

mpich的用户指南

2021-06-27

dst.rar数据结构与算法源代码

B站up主:C语言技术网------数据结构与算法源代码

2021-06-27

freecplus_20200926.tgz

C语言技术网的开源框架------详细请见www.freecplus,net

2021-06-27

LeetCode 101 - A LeetCode Grinding Guide (C Version).pdf

LeetCode 刷题笔记

2021-06-27

LeetCode刷题题解答案.pdf

献给刷题的小伙伴们!一起刷!

2021-06-27

空空如也

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

TA关注的人

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