- 博客(259)
- 资源 (6)
- 收藏
- 关注
原创 如何查找文献
文章目录1 如何搜索论文1.1 中文文献1.2 英文文献2 如何下载论文2.1 下载英文文献2.2 下载中文文献1 如何搜索论文1.1 中文文献知网、万方、维普(付费,尽量查看国内top 10的学校的论文)谷歌学术(免费)https://scholar.google.com1.2 英文文献谷歌学术sci hubweb of science(可以查看影响因子和分区,来识别这篇文章的参考价值)2 如何下载论文2.1 下载英文文献首先在谷歌学术中搜索,右侧有pdf标志的,直接右
2022-03-21 03:23:26
1506
原创 七、C内存(1)
文章目录1 内存与CPU关系2 C内存管理2.1 作用域2.1.1 局部变量2.1.2 全局变量2.1.3 静态变量(static)2.1.3.1 静态局部变量2.1.3.2 静态全局变量2.1.3.3 总结2.1.4 全局函数和静态函数2.1.5 总结2.2 内存布局1 内存与CPU关系程序存储在硬盘中,CPU进行计算时,需要将程序从硬盘加载到内存中,然后CPU从内存读取到数据进行相应的运算,得出结果。寄存器(Register)是CPU内部非常小、非常快速的存储部件。我们经常听说多少位的CPU,
2022-02-25 00:56:38
852
原创 七、面试题
1 基础语法篇1 分别写出bool、int、float、指针变量和“零值“比较的if语句。if (var0)if (var1 == 0)if (var2 < 0.00001)if (ptr == NULL)2 如果有一个全局变量需要在多个C/C++源文件中使用,请写代码实现需求(1分)def.h #ifndef _DEF_H #define _DEF_H extern int var; //声明#endif def.cpp #include "def.h"in
2022-02-23 17:48:35
435
原创 关于在ubuntu中git clone超时的问题
文章目录1 配置了科研上网2 查看命令窗口的git配置3 为git设置代理4 (可选)git移除代理1 配置了科研上网首先确保浏览器能够访问谷歌,能访问GitHub2 查看命令窗口的git配置git是否设置了代理git config --global --get http.proxy git config --global --get https.proxy如果什么都没有显示,说明没有配置代理3 为git设置代理在linux的设置,网络中查看代理的地址,设置如下 git config
2022-02-21 18:05:38
6013
3
原创 Kafka初识(1)
文章目录0 前置1 Kafka入门2 什么是生产者、消费者3 什么是topic4 什么是partition5 什么是Broker6 Kafka如何保证高可用7 Kafka持久化是存在哪里,读写有什么亮点8 Kafka的消费者组9 offset是什么,有什么用,保存在哪里0 前置需要了解zookeeper:Kafka使用ZooKeeper管理自己的元数据配置。需要了解消息队列:Kafka是一个消息队列1 Kafka入门首先我们得去官网看看是怎么介绍Kafka的:https://kafka.apac
2022-02-09 17:28:43
1053
原创 消息队列(1)
文章目录1 消息队列1.1 什么是消息队列1.2 为什么需要消息队列(使用消息队列的优势)异步解耦削峰/限流1.3 使用消息队列需要注意的问题1.4 主流的消息队列中间件2 消息队列的高可用,重复消费、消息丢失、消息顺序、分布式事务1 消息队列1.1 什么是消息队列消息队列,一般我们会简称它为MQ(Message Queue),简单理解为:把要传输的数据放在队列中。把数据放到消息队列叫做生产者从消息队列里边取数据叫做消费者1.2 为什么需要消息队列(使用消息队列的优势)场景举例:开发一个
2022-02-09 14:40:16
1113
原创 Thinking in UML 学习(1)
1 为什么需要UML1.1 面向过程的困难构成一个系统的因素太多,要把所有可能的因素都考虑到,把所有因素的因果关系都分析清楚,再把这个过程模拟出来实在是太困难了。1.2 面向对象的困难对象是怎么被抽象出来的对象的组合如何评价是好的对象组合如何表现出它的含义1.3 UML的做法现实世界抽象到业务模型对象业务模型抽象到概念模型:边界(接口)、控制、实体、包、组件概念替代现实的业务模型从概念模型到设计模型:实例化的对象执行了概念模型的某些信息2 建模基础2.1 建模具体来说,做
2022-01-28 15:30:36
744
原创 Dockerfile之CMD和ENTRYPOINT区别
文章目录1 CMD命令1.1 执行条件1.2 用法1.2.1 用法1:带有中括号的形式。(推荐)2 ENTRYPOINT命令2.1 执行条件2.2 用法2.2.1 用法1:带有中括号的形式。(推荐)3 总结1 CMD命令cmd给出的是一个容器的默认的可执行体。也就是容器启动以后,默认的执行的命令。1.1 执行条件(1)docker run没有指定任何的执行命令或者(2)dockerfile里面也没有entrypoint才会使用CMD内命令执行1.2 用法The CMD instruction
2022-01-20 14:26:54
4860
原创 使用restbed库的创建基于rest风格的web后端之C++(2)之类对象的创建、变量内存占用
文章目录1 智能指针的使用2 创建对象的方式2.1 建立对象2.2 建立对象指针(配合智能指针)2.3 总结1 智能指针的使用项目中的Session对象是用的shared_ptr智能指针管理的建立Resource对象也是用的shared_ptr智能指针管理的2 创建对象的方式2.1 建立对象语法:ClassName object(param);这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间。注意:为节省存储空间,C++创建对象时仅
2022-01-13 15:18:27
453
原创 指针变量的星号是靠近变量名还是靠近类型
1 定义单个变量int *a; int* a;意思相同且后者看上去更为清楚:a被声明为类型为 int* 的指针。但是不推荐,理由见如下:2 定义多个变量int* b, c, d;b 是一个指针, 但其余两个变量只是普通的整形.要声明三个指针, 正确的语句如下:int *b, *c, *d;3 总结推荐*号靠近变量...
2022-01-13 13:38:38
479
2
原创 C++四种强制类型转换
文章目录1 C++类型转换本质1.1 自动类型转换(隐式)1.2 强制类型转换(显式)1.3 类型转换的本质1.4 类型转换的安全性2 四种类型转换运算符2.1 C语言的强制类型转换与C++的区别3 static_cast4 reinterpret_cast5 const_cast6 dynamic_cast6.1 向上转型(Upcasting)6.2 向下转型(Downcasting)1 C++类型转换本质1.1 自动类型转换(隐式)利用编译器内置的转换规则,或者用户自定义的转换构造函数以及类型转换
2022-01-13 11:37:16
11061
1
原创 Docker重要原理详解(2)之数据卷
1 数据卷容器挂载了多个数据卷,数据卷内部是同步的,不同数据卷之间是相互隔离的一个设置为日志的挂载目录:容器内/var/log//var/log/一个设置为项目开发的挂载目录:容器内/workspace和本机的/home/xxxxx/workspace同步"Mounts": [ { "Type": "bind", "Source": "/var/log/", "Destination": "/var/log/", "Mode": "", "RW": true, "Propa
2022-01-13 09:10:45
275
原创 Docker重要原理详解(1)之网络通信
1 关于docker的网络通信1.1 宿主机和容器的通信在单机环境中:宿主机上的Docker Daemon启动时会为宿主机创建一块名为docker0的虚拟网卡,在Docker初始化时系统会分配一个IP地址绑定在这个网卡上。如5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:a1:3f:a3:d0 brd ff:ff:
2022-01-12 23:38:59
613
原创 Dockerfile RUN 、 CMD 、 ENTRYPOINT区别
文章目录0 前言1 RUN2 CMD3 ENTRYPOINT0 前言运行命令的形式有两种:Shell格式和Exec格式运行命令RUN两种都可以CMD和ENTRYPOINT推荐使用ExecShell格式:<instruction> <command>。例如:apt-get install python3Exec格式:<instruction> ["executable", "param1", "param2", ...]。例如: ["apt-get", "ins
2022-01-12 23:29:59
446
原创 C++项目实战之dockerfile编写指南(1)
文章目录1 Dockerfile结构2 常用指令说明1 Dockerfile结构基础镜像信息维护者信息镜像操作指令容器启动时执行指令2 常用指令说明ENV 设置环境内环境变量,例如:声明容器中java程序的java环境变量ADD 拷贝文件或目录到镜像中,ADD指令比COPY指令常用ENTRYPOINT 用于为容器指定默认运行程序(脚本)CMDRUN注:CMD与RUN的差异两者的运行时间点不同RUN指令运行在docker build的过程中,而CMD指令运行在基于新镜像启动容器
2022-01-12 23:10:26
1095
原创 C++之const的用法(1)
文章目录1 const修饰函数参数1.1 const 用于修饰“指针传递”的参数,以防意外改动指针所指数据1.2 不要给值传递的参数加const修饰2 const修饰函数返回值2.1 const 修饰函数返回值(返回指针)2.2 const 修饰函数的返回值(返回引用)2.3 const 修饰函数返回值(值传递)1 const修饰函数参数保护函数参数的内容不被意外修改1.1 const 用于修饰“指针传递”的参数,以防意外改动指针所指数据举个例子:void StringCopy(char *str
2022-01-11 10:13:33
267
原创 使用restbed库的创建基于rest风格的web后端之C++(1)之文件、字符串、容器相关操作
文章目录1 文件操作1.1 文件操作之以每行写入字符串到文件中2 字符串操作2.1 字符串的替换操作2.2 map与json字符串互转2.2.1 map转为json字符串2.2.2 map转为子json字符串数组的形式2.3 关于char* 与 string以及unsigned char *的互转,以及const强转的相关问题1 文件操作背景:此次主要使用的是将请求和响应的数据资源保存到文件中不是数据库,会涉及到很多C++的文件操作1.1 文件操作之以每行写入字符串到文件中ofstream outf
2022-01-09 22:01:42
806
原创 C++ 函数对象
1 概念将()运算符重载为一个类的成员函数,这个类就称为函数对象类。这个类的对象就是函数对象。函数对象是一个对象,但是使用的形式看起来像函数调用,实际上也执行了函数调用,因而得名。举个例子:class CAverage{public: //重载()运算符 double operator()(int a1, int a2, int a3) { return (double)(a1 + a2 + a3) / 3; }};int main(){
2021-12-31 15:18:11
528
原创 Effective STL阅读笔记(1)
文章目录1 容器2 vector 和 string3 关联容器4 迭代器5 算法6 函数7 在程序中使用STL8 学习过程中的一些思考8.1 vector可以实现stack的功能,为什么还需要stack1 容器2 vector 和 string3 关联容器4 迭代器5 算法6 函数7 在程序中使用STL8 学习过程中的一些思考8.1 vector可以实现stack的功能,为什么还需要stackvector是容器,stack是容器适配器扩充:什么是容器适配器?容器适配器本质上还是容器
2021-12-31 13:32:53
806
原创 C++之智能指针(C++的垃圾回收机制)
文章目录1 智能指针1.1 智能指针的作用1.2 智能指针有哪些1.3 nullptr1.4 shared_ptr1.4.1 内存资源管理不当案例1.4.2 垃圾回收机制1.4.3 shared_ptr指针初始化1.4.4 成员方法1.5 unique_ptr1.5.1 unique_ptr智能指针的创建1.5.2 释放堆内存1.5.3 成员方法1.6 weak_ptr1.6.1 weak_ptr指针的创建1.6.2 weak_ptr成员方法1 智能指针1.1 智能指针的作用智能指针的行为类似常规指针
2021-12-31 11:40:50
2947
2
原创 REST服务简介和实践
1 资源识别REST服务中的API将不再以执行了什么动作为中心,而是以资源为中心。一些对资源的通用操作有添加,取得,修改,删除,以及对符合特定条件的资源进行列表操作。1.1 识别方法(关注动作后的宾语)我们对某个操作不要再关注它所执行的动作,而是关心它所操作的宾语。通常情况下,该宾语就会是REST系统中的资源。动作可能并不存在着它所操作的宾语,变化的实体实际上就是一种资源。在抽象资源的过程中,我们需要按照自顶向下的方式,即首先辨识出系统中的最主要资源,然后再辨识这些主要资源的子资源如果一个资源
2021-12-29 16:43:33
2672
原创 C++基础(9)之IO
01.C++类型转换(了解)静态转换:用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换用于基本数据类型之间的转换,如把int转换成char,把char转换成int。这种转换的安全性也要开发人员来保证动态转换:l ynamic_cast主要用于类层次间的上行转换和下行转换;l 在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;l 在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全;常量转换
2021-12-27 23:27:00
1197
原创 C++基础(8)之模板
01.模版的概念(了解)1.函数或类是通用,但是里面的数据类型的多种状态2.模版有:函数和类02.函数模版(重点)1.什么是函数模版函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板2.怎么编写函数模版//T代表泛型的数据类型,不是只能写T,template<class T>//让编译器看到这句话后面紧跟着的函数里有T不要报错void mySwap(T &a,T &b){ T tmp = a
2021-12-27 23:25:01
225
原创 C++基础(7)之多态、接口
01.多态(重点难点)1.什么是多态:同一个操作作用于不同的对象,可以有不同的解释,会产生不同的效果,这就是多态class People{public: //虚函数 virtual void Mypro() { }};class xishi :public People{public: //重写父类的虚函数 virtual void Mypro() { cout << "约西施" << endl; }};class wangzhaoju
2021-12-27 23:21:09
348
1
原创 C++基础(6)之继承、静态联编与动态联编
01.智能指针类(重点)1.智能指针类是管理另一个类的对象的释放class Maker{public: Maker() { cout << "无参构造" << endl; } void printMaker() { cout << "hello Maker" << endl; } ~Maker() { cout << "析构函数" << endl; }};class SmartPoint{
2021-12-27 23:16:55
442
原创 C++基础(5)之运算符重载
01.数组类(了解)1.目的:设计一个类,该类有数组的功能,可以存储数据,可以删除修改数据2.设计核心数据1.属性:指针(指向堆区空间),数组实际存储的元素个数,数组容量2.方法:构造(开辟堆区空间),尾插,头插,指定位置插入,尾删,头删,获取指定位置的值,指定位置修改值,获取数组元素个数,获取数组容量,析构函数3.代码实现(看代码)02.运算符重载的概念(重点)1.运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。2.运算符重载的目的是让语法更加简洁3.
2021-12-27 23:12:12
443
原创 C++基础(4)之static、this指针、友元
01.explicit的作用(了解)class Maker{public: //explicit只能放在构造函数前面,构造函数只有一个参数或其他参数有默认值时 explicit Maker(int n)//防止编译器优化Maker m=10;这种格式 { }};int main(){ //Maker m = 10;err}02.C++的堆区空间的申请和释放(重点)1.申请和释放变量空间1.为什么要有新的方法申请和释放堆区空间因为用C语言的方式不会调用构造和析构函数2.
2021-12-27 23:10:20
473
原创 C++基础(3)之构造函数、析构函数、拷贝构造
1.初始化和清理的概念(了解)1.当对象产生时,必须初始化成员变量,当对象销毁前,必须清理对象2.初始化用构造函数,清理用析构函数,这两个函数是编译器调用2.构造函数和析构函数(重点)1.初始化的作用和析构函数的作用构造函数的作用class Maker{public: //构造函数的作用是初始化成员变量,是编译器去调用的 Maker() { a = 10; cout << "构造函数" << endl; } //析构函数,在对象销毁前,编译器调用析
2021-12-27 23:00:30
430
原创 C++基础(2)之函数、类的概念
01.引用的使用场景(重点)1.引用作为函数参数//1.引用作为函数参数void func(int &a, int &b){ int sum = a + b; cout << "sum=" << sum << endl;}void test01(){ int a = 10; int b = 20; func(a, b);}2.引用作为函数的返回值//2.引用作为函数的返回值int& func2(){ int
2021-12-27 22:53:20
478
原创 C++基础(1)之命名空间、指针和引用
01.C++概述(了解)c++语言在c语言的基础上添加了面向对象编程和泛型编程的支持。02.第一个程序helloworld(掌握)#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;//标准命名空间int main(){ //cout是标准的输出流对象,打印字符串, //endl是刷新缓冲区,并换行 cout << "hello world!" << endl;
2021-12-27 22:46:30
443
原创 Effective C++ 学习(1)
1 C++的联邦大厦C基础:区块、语句、预处理器、内置数据类型、数组、指针Object-Oriented C++:class、封装、继承、多态、虚函数Template C++:模板元编程(TMP)STL:template程序库,对容器、迭代器、算法和函数对象的规约和配合2 尽量使用const、enum、inline替换 #define在编译之前预处理器会替换掉宏定义的内容,所以编译器不可见,当程序编译出现此变量的错误信息时,无从查找,所以尽可能的使用编译阶段能被编译器检查的。#define
2021-12-27 15:11:03
458
原创 git下载安装
文章目录1 git 下载2 git 安装1 git 下载官网下载:https://git-scm.com/download/win缺点:下载速度太慢,建议下面的镜像下载镜像网站下载:https://npm.taobao.org/mirrors/git-for-windows/2 git 安装见博客:https://u-hcy.blog.youkuaiyun.com/article/details/109983046...
2021-12-26 23:39:43
470
原创 C++编码规范
1 数据类型类型 类型描述 示例u8 无符号的 8bit 字节 unsigned char byLetter -> u8 byLetteru16 无符号的 16bit 整数 unsigned short wValue -> u16 wValueu32 无符号的 32bit 整数 unsigned int dwValue -> u32 dwValueu64 无符号的 64bit 整数 unsigned long lo
2021-12-26 23:07:41
593
1
postman安装包
2020-11-17
Navicat Premium 11.1.zip
2020-11-13
maven安装包和本地仓库
2020-11-11
stonegame.zip
2020-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人