自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(412)
  • 问答 (8)
  • 收藏
  • 关注

原创 最小生成树

https://zhuanlan.zhihu.com/p/136387766《数据结构》复习9 图【下】 - 知乎最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示_哔哩哔哩_bilibili大话数据结构-普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal)_prim和kruskal-CSDN博客【数据结构】克鲁斯卡尔(Kruskal)算法 —PK— 普里姆(Prim)算法_普里姆算法和克鲁斯卡尔算法区别-CSDN博客最小生成树之普里姆(Prim)算法和克鲁斯卡尔(Kruskal

2024-04-23 13:35:51 223

原创 c++ 派生类向基类转换的可访问性

1.如果派生类以public继承基类,则是is a关系,用派生类可以完成基类的所有功能,所以可以在任意地方将派生类自动转换成基类,注意,这里都是指指针或引用,而不是对象。3.如果D继承B的方式是public或者protected,则D的派生类的成员或者友员可以使用D向B的类型转换;反之,如果D继承B的方式是private,则不能使用。不论D以什么方式继承B,D的成员函数和友员函数都能使用派生类向基类的转换;派生类向其直接基类的类型转换对于派生类的成员函数和友员函数来说永远是可访问的。

2024-04-23 13:27:12 924

转载 C++11 external template

C++11 外部模板

2024-03-05 17:56:09 37

原创 std::vector

主要介绍std::vector相关的知识点

2023-12-14 20:54:47 105

原创 C++构造函数列表初始化的优点

C++构造函数列表初始化的优点

2023-12-13 15:32:08 141

原创 std::map

std::map之emplace() emplace_hint() try_emplace的区别

2023-12-12 20:01:11 105

原创 C++20之concept 和 require

在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name、age和email,以及操作modifyInfo()public class Employee { private String name; private int age; private String email; public void modifyInfo() { ...... }}在UML类图中,类一般由.

2023-10-24 17:49:05 156 1

原创 四大特性模块(module)

C++20四大特性值模块(module)

2023-10-22 09:00:15 1230

原创 协程的介绍

先占位。

2023-10-22 08:00:23 147

原创 lvalue xvalue prvalue

左值右值将亡值

2023-03-19 15:21:49 330 1

原创 有状态lambda和无状态lambda

有状态、无状态 lambda

2023-02-05 22:23:45 395

转载 template关键字的另外一种使用场景

C++ template

2022-09-26 13:44:31 239 1

原创 C++常用网站

C++相关有用的网站记录下

2022-09-24 09:51:11 761

转载 Beyond Compare对比相同文件仍显示红色

Beyond Compare是一个很不错的文件/文件夹比较软件,在使用它比较文件夹的时候,相同的文件有可能也会被标为红色。然后点击进去一看发现它们都是一样的,再退出来,就变黑了。是什么原因导致了会出现这样的情况呢?下面小编将为你揭晓在Beyond Compare中出现这样情况的原因以及解决该问题的方案。比如下图显示对比结果中,两侧的aaa.xml是一模一样,会话中却以红色标识出来,说明两者不同。在Beyond Compare红色标识文件示例原因分析:之所以标红显示是因为文件的时间戳不一

2022-03-17 13:09:03 3889 1

转载 数组指针和指针数组的区别

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]p++; //该语句执行过后,也就...

2022-01-19 09:58:51 1294

原创 std::tuple 遍历 传递到函数参数

#include <iostream>#include <tuple>struct Drx{ int a;};struct Mg{ int b;};class MsgBuilder{public: void addData(const Drx& drx){ std::cout << "Drx:" << drx.a << std::endl; } v...

2021-12-09 17:02:27 808

原创 gvim8.2 NERDTree中设置根目录和自动启动

在window上安装了gVIm8.2及插件NERDTREE,每次启动gVim的时候根目录不是我想要的。我找到的一个方法只能将就这用下,总比没有的好很多。具体步骤:1. 右键点击gVim,然后在属性的Start in中可以看到的路径是%HOMEDRIVE%%HOMEPATH% 我们把这个修改为自己代码的根目录即可。还有另外一个问题是每次启动的时候还得通过输入NERDTree或者按快捷键才能显示代码目录。在你的_vimrcwe中配置如下:autocmd VimEnter * NERDTr..

2020-11-14 11:14:32 1022

原创 ubuntu20.10终端只显示当前目录名

今天周末大清早的起来安装了ubuntu20.10,打开终端安装vmware tools的时候发现默认显示的是目录的绝对路径,感觉路径名太长了,看着体验不好。我是只想显示当前目录,这样看起来简洁的很。具体操作如下:步骤一, vi 打开~/.bashrc这个文件步骤二,找到如下PS1并把if和else两个分支的小w修改为大W:注意网上很多方法都是只修改了if分支下的w,并没有修改else分支下的w,导致有些人的修改不生效。步骤三, source一下修改的~/.bashrc这个文件

2020-11-14 08:21:27 642 1

原创 Qt5.12设置支持C++17的方法

在安装目录下找到file.pro文件,我的安装目录如下:C:\Qt\Qt5.12.6\Tools\QtCreator\share\qtcreator\templates\wizards\projects\plaincpp\file.pro将CONFIG += console c++11修改为CONFIG += console c++17 即可。

2020-11-05 19:12:06 4432 1

原创 两个没有排序的vector求是否有交集

#include <iostream> // std::cout#include <algorithm> // std::find_if#include <vector> // std::vectorauto test(const std::vector<int>& va, const std::vector<int>& vb)//auto test(const std::vector<in...

2020-09-30 13:33:04 507

原创 5G相关资料下载网址

3gpp文档:https://www.3gpp.org/ftp/Specs/archivehttps://www.3gpp.org/DynaReport/38-series.htmNR frequency bandhttps://www.sqimway.com/nr_band.php

2020-09-15 16:32:16 6875

原创 C语言运算符优先级

mark下 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- .

2020-07-18 10:30:29 161

原创 std::set自定义排序比较函数

std::set默认是通过std::less函数来比较key值的。#include <iostream>#include <set>void main(){ std::set<int> mySet; // mySet.insert(10); // 默认比较函数为less mySet.insert(20); // 从小到大排序 for(auto it:mySet) { st

2020-07-10 13:21:23 5372

原创 ULM图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name、age和email,以及操作modifyInfo()public class Employee { private String name; private int age; private String email; public void modifyInfo() { ...... }}在UML类图中,类一般由.

2020-07-05 11:44:55 1099 2

原创 设计模式原则

软间的可维护性和可复用性知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成:•过于僵硬(Rigidity)•过于脆弱(Fragility)•复用率低(Immobility)•黏度过高(Viscosity)软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质:•可扩展性(Extensibility)•灵活性(Flexibility)•可插入性(Pluggab

2020-07-04 19:42:33 400

原创 const iterator与const_iterator的区别

const iterator相当于指针常量。即,指针本身为常量,指针自身不可修改,不能指向其他的元素,但指向内容可修改。 const_iterator相当于常量指针。即,指针指向的内容为常量,指针本身可修改,指向其他的元素,但指向内容不可修改。举例如下:#include <iostream>#include <vector>int main(){ std::vector<int> v{1,3,5,7,9}; const std::vector&lt

2020-06-04 13:18:47 485 1

原创 ubuntu 源码重装vim

首先卸载自带vi// 彻底卸载 vimsudo apt-get remove vim vim-runtime vim-tiny vim-common vim-scripts vim-doc

2020-05-17 14:30:41 719

原创 Ubuntu创建root用户及使用

1. 创建root用户在终端输入sudo passwd root然后回车接着会让你输入当前用户密码。输入按下回车输入两次root密码2.使用root用户su root //提示输入root密码。输入即可或者sudo这种方式也可以...

2020-05-17 14:03:19 3543

原创 vmware workstation安装ubuntu20.04图解教程

环境:Win10 64位VMware-workstation-full-15.5.2-15785246Ubuntu版本是 Ubuntu 20.04 LTS 64位 desktop版本下面详细介绍在VMware 虚拟机里安装Ubuntu 20.04 LTS的步骤新建一个虚拟机,选择自定义(高级),然后 点击 下一步2. 点击 下一步3 选择稍后安装操作系统,然后 点击 下一步4客户机操作系统 选择 Linux,版本 Ubuntu 64位(因为下载的是64位的系统,..

2020-05-17 13:59:45 7243 3

原创 std::tie在struct中的用法

#include <iostream>#include <string>#include <map>#include <tuple>using namespace std;struct Test{ int id; std::string name; std::map<int, std::string> address; float wage; auto tie() const {return std::tie(id,.

2020-05-09 15:05:40 394

原创 C++设计模式之迭代器模式(Iterator)(行为型)

一 定义有许多中方法可以把对象堆起来成为一个集合(Collection)。你可以把他们放进数组,堆栈,列表或散列表(Hashtable)中,这是你的自由。每一种都有他自己的优点和合适的使用时机,但总有一个时候,你的客户想要遍历这些对象,而当这么做时,你打算让客户看到你的实现吗?我们当然希望最好不要。如何能让客户遍历你的对象而又无法窥视你存储对象的方式,也将学习如何创建一些对象超集合。迭代器...

2020-04-24 17:32:59 383

原创 C++设计模式之职责链模式(Chain of Responsibility)(行为型)

一 定义 在很多情况下,可以处理某个请求的对象不止一个,如大学里的奖学金审批,学生在向辅导员提交审批表之后,首先是辅导员签字审批,然后交给系主任签字审批,接着是院长审批,最后可能是校长审批,在这个过程中,奖学金申请表可以看成是一个请求对象,而不同级别的审批者都可以处理该请求对象,除了辅导员之外,学生不需要一一和其他审批者交互,只需等待结果即可。在审批过程中如果某一个审批者任务不符合条件,...

2020-04-24 10:50:02 321

原创 C++设计模式之访问者模式(visitor)(行为型)

一定义1 概述在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。例子1:顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购物过程中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员计算价格时也需要访问...

2020-04-23 15:43:41 972

原创 C++设计模式之命令模式(command)(行为型)

一 定义命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求进行排队或记录请求日志,以及支持可撤销的操作。二 ULM图...

2020-04-15 09:43:26 467

原创 SlickEdit配置保存路径

SlickEdit多了一些配置之后保存文件的路径:C:\Users\Administrator\Documents\My SlickEdit Config其中Users\Administrator可能根据每个人电脑用户的不同而有所不同。...

2020-04-04 09:56:14 558

原创 C++设计模式之中介者模式(mediator)(行为型)

一 定义中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。二 ULM图角色抽象中介者(Mediator):中介者定义一个接口用于与各同事(Colleague)对象通信。具体中介者(ConcreteMediator):具体中介者通过协调各同事对象实现协作行为。了解并维护它的各个同事。抽象同...

2020-03-31 19:34:56 273

原创 C++设计模式之备忘录模式(memento)(行为型)

一、定义备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。二、 ULM图角色:(1)Originator(发起人):负责创建一个Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储Originator的哪些...

2020-03-30 16:20:51 284

原创 C++设计模式之观察者模式(observer)(行为型)

一 定义观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。观察者模式又叫做发布-订阅(Publish-Subscribe)模式、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式。Observer模式应该可以说是应用最多、影响最广的模式之一,因为...

2020-01-20 11:05:01 921

原创 C++设计模式之状态模式(state)(行为型)

一 定义状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把不同状态的操作分散到不同的状态对象里去完成。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样...

2020-01-18 11:12:09 3059 1

原创 C++设计模式之策略模式(strategy)(行为型)

一 定义策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。策略模式把对象本身和运算规则区分开来,其功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性的思想。二 ULM图环境类(Context):用一个Concr...

2020-01-17 11:18:18 753

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

TA关注的人

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