- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 C++ LRU缓存算法的设计与实现
C++ LRU缓存算法的设计与实现常见缓存类型LRU原理LRU算法设计LRU算法实现扩展LRU-K常见缓存类型LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。FIFO (Fist in first out) 先进先出, 如果一个数据最先进入缓存中,则应该最早淘汰掉。LRU原理
2021-04-13 20:06:02
742
转载 C++什么类不能被继承
C++什么类不能被继承转载链接: 知愚.C++什么类不能被继承,首先思考派生类继承基类将会发生什么默认操作?派生类在调用自身的构造函数之前需要先调用基类的构造函数。那么我们就让这个不想被别人继承的类的构造函数无法被其派生类构造。现在主要有三种方式阻止类的构造函数被调用。一是,将自身的构造函数与析构函数放在private作用域内;二是,将自身作为一个已存在类的友元类。这两种方式都能阻止派生类的继承(因为自身无法构造函数)三是,使用C++11新特性final。一、将自身的构造函数与析构函数放在pri
2021-04-10 21:41:09
672
原创 C++ friend 友元函数和友元类
友元函数和友元类概述作用友元函数友元类概述过度保护。私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。为了实现普通函数能够访问到类的私有(保护)成员。通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为public(共用的),然而这做带来的问题遍是任何外部函数都可以毫无约束的访问它操作它,c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作,避免把类成员全部设置成public
2021-04-10 21:17:26
613
原创 C++ 语法之【成员初始化列表】
C++ 语法之【成员初始化列表】类对象构造过程定义【成员初始化列表】必须使用【成员初始化列表】的情况情况一:const类成员或者被声明为引用的类成员情况二:初始化成员是对象(包含继承)情况三:子类初始化父类的私有成员必须使用【初始化列表】的原因初始化顺序问题类对象构造过程《C++ Primer Plus》中这样描述:从概念上来说,调用构造函数时,对象将在括号中的代码被执行之前被创建。因此,调用构造函数将导致程序先给其成员变量分配内存。然后,程序流程进入到括号中,使用常规的赋值方式将值存储到内存中。我们
2021-04-09 17:35:07
6751
原创 STL之std::vector源码剖析
std::vector源码分析vector容器概述一、vector对比array容器二、底层技术实现1.空间的动态扩展2.迭代器相关三、源码摘要vector容器概述// highlighted block1. 模板类vector类似于string类,也是一种动态数组。2. 它可以在运行阶段的设置vector对象的长度,可在末尾附加新数据,还可以在中间插入新数据。3. 它是使用new创建动态数组的替代品。 实际上vector类确实使用new和delete来管理内存,但这种工作是自动完成的。一、
2021-03-24 14:51:15
1156
原创 SQL and NoSQL
SQL and NOSQL关系型数据库和非关系型数据库关系型数据库 - SQL概念优缺点非关系型数据库 - NOSQL概念诞生原因优缺点NOSQL的优势NOSQL的分类NOSQL使用场景NOSQL 和 SQL的区别关系型数据库和非关系型数据库关系型数据库 - SQL概念SQL (Structured Query Language) 数据库,指关系型数据库。主要代表:SQL Server,Oracle,MySQL,PostgreSQL。优缺点目前世界上主流的存储系统大部分还是采用了关系型数据库,其
2021-03-23 21:03:18
216
转载 C++ 虚函数
虚函数、纯虚函数、虚函数表文章目录1.虚函数2.纯虚函数3.抽象类4.虚函数表一般继承(无虚函数覆盖)一般继承(有虚函数覆盖)多重继承(无虚函数覆盖)多重继承(有虚函数覆盖)文章目录C++ 语言的三大特性:封装、多态、继承。1.虚函数引入之前的问题:通过基类指针只能访问派生类的成员变量,但是不能访问派生类的成员函数。为了消除这种尴尬,让基类指针能够访问派生类的成员函数,C++ 增加了虚函数(Virtual Function)。使用虚函数非常简单,只需要在函数声明前面增加 virtual 关键字。
2021-03-18 20:41:18
304
原创 多线程与并发(一)
并发、进程、线程一、什么是并发?并发概念二、什么是进程?1.进程与程序的联系2.区别3.特点4.操作系统如何进行进程管理?5.进程都有那些状态?三、什么是线程?1.为啥使用多线程?2.使用线程优点3.使用线程缺点4.多线程(并发)一、什么是并发?并发概念1.两个或更多的任务(独立活动)同时发生(进行):一个程序同时执行多个独立的任务。2.单核cpu某个时刻只能执行一个任务:由操作系统调度,每秒钟进行所谓的“任务切换”。3.并发的假象(伪并发不是真正的并发);这种切换(上下文切换1,状态信息)是要有
2021-03-17 17:36:20
239
原创 STL之std::sort集大家之所长
目录三种排序算法一、快速排序二、堆排序三、插入排序四、STL之std::sort函数sort粗略原理sort 适合那些容器三种排序算法在学习c++的过程中,对std::sort函数的实现有了粗浅的认识,了解的越深入越惊叹开发人员代码的美妙之处。原以为的不起眼之处却暗藏玄机,在查阅了各种文章后,觉得有必要记录一下(搬运工),仅以此不断勉励自己。一、快速排序首先直面快速排序,名如其名,以快速著称,平均时间复杂度达到O(N logN),是最快速的排序算法之一。它采用了递归的函数调用原理,不断地选择pivo
2020-12-18 20:22:13
913
原创 Ubuntu18.04服务器下多账号win10远程控制+文件上传下载
Ubuntu18.04服务器下多账号win10远程控制+文件上传下载一、Ubuntu18.04桌面版服务器安装二、Xrdp以及SSH安装三、Win10自带远程桌面控制四、FileZilla文件传输最近实验室采购了两台服务器,舒服了啊。但怎么捣鼓它是个问题。配置:Intel(R) Xeon(R) W-CPU@3.90GHz 内存250G SSD 1T 机械硬盘 16T 组内需求:1. 多人同时登陆互不干扰,有独立存储空间,密码访问。2. 不同代码环境由用户决定,给予相应权限。3. 实验室内局域
2020-10-15 16:23:25
538
原创 C++实现A*算法基于路网图
C++版本A*算法基于路网图A*寻路算法算法概述流程图伪代码C++实现C++版本A*算法基于路网图A*寻路算法算法概述流程图伪代码C++实现A*寻路算法算法概述从起点start到达目标点target并经过点x的估计距离长度表示为f(x) = g(x) + h(x),该公式是A*算法的核心公式。g(x)表示实际路网距离,h(x)表示从点x到target的估值,一般用欧式距离或者曼哈顿距离表示。A*算法通过不断的选择估计距离f(x)最小的节点,逐渐构建最短路径。用两个表open表(
2020-09-11 12:23:46
2034
原创 Ubuntu 18.04.4下安装boost_1_73_0
Ubuntu 18.04.4下安装boost_1_73_0Boostboost的作用boost的下载和安装Boostboost的作用1.Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。2.Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。3
2020-09-06 21:19:15
7448
原创 Ubuntu 18.04.4下安装METIS-5.1.0
Ubuntu 18.04.4下安装METIS-5.1.0VMware和Ubuntu的安装版本安装METIS的安装预先环境gcc、g++、cmakeMETIS的安装VMware和Ubuntu的安装版本安装Windows10下在VMware虚拟机上安装Linux Ubuntu这里选的是vmware15.5.6 内安装镜像ubuntu 18.04.4下载iso映像文件Ubuntu的官方下载路径:http://www.ubuntu.com/download/desktop转载csdn链接: 详细步骤.
2020-06-26 13:38:32
4442
1
原创 二分法算法查找细节
二分法算法查找细节思路很简单,细节是魔鬼、、、int binarySearch(int[] nums, int target) {int left = 0;int right = nums.length - 1; // 注意while(left <= right) { int mid = left + (right - left) / 2; if(nums[mid] == target) return mid; else if (nums[mid]
2020-06-19 07:35:26
190
原创 我的第一条博客
我的第一条优快云博客。。。目的分享资源分享技术目的1.赚取积分 2.分享资源与技术3.记录学习进展分享资源计算机相关书籍 ;各类软件安装包 ;各种教学视频以及笔记 ;还有很多有趣的东西 ;分享技术计算机专业技术问题分享 ;web相关开发servlet +Jsp + mysqlspring + springMVC + MybatisspringBoot + s...
2019-08-26 22:45:03
205
metis安装包和manual手册.rar
2020-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人