- 博客(222)
- 资源 (27)
- 收藏
- 关注
原创 【程序员的自我修养】操作系统基础知识回顾----第一章学习笔记
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。操作系统的发展:#mermaid-svg-ujEnIm8XR3nygVsG .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ujEnIm8XR3nygVsG .label text{fill:#333}#mermaid-svg-ujEnIm8X.
2020-12-20 15:30:22 188 1
原创 【程序员的自我修养】学习计划
从这周开始,每周学习两章内容及一个设计模式。空闲时间学习c++20新特性。时间章节设计模式12-20第一章,第二章观察者12-27第三章,第四章策略1-3第五章,第六章访问者、单例1-10第七章,第八章工厂1-17第九章,第十章抽象工厂1-24第十一章,第十二章建造者1-31第十三章,及总体复习适配器...
2020-12-20 14:28:51 176 1
原创 【c/c++】指针传参相关问题
如下代码输出是什么:#include <iostream>using namespace std;struct List{ int val; List* next; List(int val_in, List* next_in=NULL) { val = val_in; next = next_in; }};void getNext(List* lst)...
2020-12-20 12:11:51 261
原创 【信息安全】shamir(t,n)密钥共享
一、应用场景有一个房间,里面放的是某公司的机密文件。如何设计该房间的门钥匙比较合理呢?有以下几种可选方案。方案一:给其中一个人,只有这个人能够打开该房间。方案二:给n个人,只有这n个人都到齐了,才能开门。方案三:给n个人,只要其中t(t<n)个人到了,就能开门。我们在来分析一下这几种钥匙分配方法的利与弊:如果只给一个人,那么这个人就可以为所欲为,如果某天他心情不好了,那...
2020-11-07 22:50:21 1694
原创 【python】图形化界面的开发
一、Hello world首先我们使用Tkinter进行GUI编程。根据python在wiki上的介绍,Tkinter是一个面向对象的python标准图形化用户接口库。并且python3在安装的时候就已经安装了Tkinter,需要的时候直接用就可以了,不需要再次安装。 可以使用下面的代码测试是否有Tkinter.from tkinter import *root = Tk()w ...
2020-11-07 22:49:36 1413
原创 【linux开发工具】g++常用编译选项(持续更新2020-11-7)
-o目标文件名g++ main.cpp -o mainmain.cpp编译后生成main。-g生成可以使用gdb来debug的目标文件g++ main.cpp -o main -g-std=c++17按照c++17标准进行编译如果你代码中用到了c++17的新特性,编译时需要加入上述选项,否则会报错。-std=c++11同。-fsanitize=address生成可以检查内存泄漏的目标文件...
2020-11-07 22:46:54 429 1
原创 【c++】很实用却不常见的操作
文章目录1、当数字比较大的时候可以使用分隔符(c++14)2、可以对bool类型使用and, or, xor, not, 关键字(c++98)3、可以给int赋二进制字面量(c++14)4、在if中直接赋值(c++17)5、表达式返回左值(c++98)6、结构化绑定(c++17)1、当数字比较大的时候可以使用分隔符(c++14)#include <iostream>using namespace std;int main(){ int num = 100'000'000;
2020-10-24 22:01:48 365
原创 【C++发邮件】ubuntu apache tomcat9 配置CGI
一、背景这段时间没啥事可做。呆在家又非常焦虑,为了缓解焦虑,同时也为了后面在工作中更加顺利,想学习用C++来做后台开发。做一个最简单的邮件发送功能吧!就是说我自己写了个人网站,在上面设计了一个向我发邮件的板块。我想做的功能就是这么简单,但是真正开始做的时候发现还是比较费劲。二、配置CGI首先我打算用CGI来开发,第一步就是配置CGI。网上的教程都比较详细,但是我就是按照教程配置了一下午,还是没弄出来,最终休息了一下,晚上才弄出来了。1、安装服务器软件我机器上是tomcat9。一般来说安装就是下
2020-06-01 22:30:23 421
原创 【杂谈】Error loading psycopg2 module :No module named psycopg2
在使用Django连接postgresql数据库的时候,使用python manage.py migrate创建数据库时提示:django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'解决办法:apt install psycopg2如果失败了...
2019-12-14 21:17:36 3091
原创 【后端编程】使用go语言实现一个守护进程
首先我们要知道①什么是守护进程;?②为什么要使用守护进程?答案:①所谓守护进程,就是不依赖任何终端的进程,也就是说如果你在当前这个终端启动了一个守护进程,然后把这个终端关了。如果是一个普通进程,而不是守护进程,那么它也会随着终端的关闭而终止。但是守护进程就比较牛逼了,当你再次打开一个新的终端的时候,只要该守护进程的任务没有完成,那么你仍然可以看到它。②他有什么用呢?比如我正在做的服务端...
2019-12-07 11:17:57 2162 4
原创 【后端开发】windows常用命令解析(持续更新2019-12-07)
一、网络类命令1、nslookup通过nslookup ?我们可以了解到这个命令的主要用途Usage: nslookup [-opt ...] # interactive mode using default server nslookup [-opt ...] - server # interactive mode using 'server'...
2019-12-02 19:14:49 344
原创 【计算机组成原理】大端模式,小端模式,字节,高地址,低地址
最近在做毕业设计,做着做着发现最熟悉的东西变成了最陌生的东西。学完计算机组成原理就知道了大端模式是低地址存高位,小端模式是低地址存低位。上面加粗的文字死记硬背当然比较难了,如果联想一下我们十进制数的表示,比如就987这个数字吧。我们习惯上会从左边开始读书或者是读一个数字,那么我们就认为左边是低地址,从左到右地址编址从小到大。而我们这个数字它的最高位是百位,该位上对应的值是9,我们就发现数字9是...
2019-11-30 16:48:32 5024 7
原创 【c++】类------构造函数,友元类,友元函数,隐式类型转换,静态成员
一、定义抽象数据类型每一个非静态成员函数都有一个隐式的this形参,当某个对象调用成员函数时,其实是通过类名调用成员函数,然后把对象地址传递给this形参。常量对象不能调用普通的成员函数。这是因为普通成员函数中隐式形参this是一个指向非常量的常量指针,也就是说它指向的地址不变,但是地址所在内存中的数据可以发生变化。但是常量对象的指针是指向常量空间的,也就是对象所在内存数据不能发生变化。所...
2019-10-07 14:15:00 481
原创 【c++】处理类型---类型别名,auto, decltype
1、类型别名using Age = int;typedef int Age;指针、常量和类型别名#include <iostream>#define MPINT int*using namespace std;using Pint=int*;int main(){ int a = 10; const Pint c_pint = &a; int b...
2019-10-06 14:18:28 211
原创 【c++】动态内存----shared_ptr,unique_ptr,weak_ptr,allocator
三个指针shared_ptr,unique_ptr,weak_ptr。都定义在memory头文件中。一、动态内存与智能指针1、shared_ptr类需要指明是指向什么类型的指针。make_sharedshared_ptr自动销毁所管理的内存,析构函数。什么时候智能指针计数增加:2、直接管理内存new出来的内置类型,如果不进行值初始化,那么它里面的内容是随机...
2019-10-05 15:26:15 249 1
原创 【c++】关联容器-----map,set,multimap,multiset,unordered_set,unordered_map。
主要是map和set,set支持find操作,如果不存在,那么会返回尾后迭代器。关联容器支持的操作关联容器的迭代器都是双向的。map和set的初始化:map,multimap,set,multiset都是有序的。vector的迭代器是可以比较大小的,list的迭代器不可以比较大小:#include <iostream>#include <vecto...
2019-10-04 18:53:44 311
原创 【c++】泛型算法-----find,count,lambda,copy,replace,back_inserter,inserter,sort,unique,erase,ostream_iterat
标准库将泛型算法定义在头文件algorithm和numeric中。一、只读算法可以使用c++11中新特性begin()和end()函数来得到数组的头部指针和尾部指针。1、find和countfind函数和count函数:vector<int> vec_int{1,2,3,4,5,6,7,8,9,9,8,7,6,5,5,5,5,5}; cout<<c...
2019-10-04 09:06:45 414
原创 【c++】容器基础-----string,string和其它进制数之间的转化,各种版本的find
#include <iostream>using namespace std;int main(){ const char* c_chr = "123456"; string str1(c_chr); string str2(c_chr,2,3); string str3(c_chr,2,100); string str4(c_chr,5); cout<<...
2019-10-03 10:48:36 197
原创 【c++】容器基础----顺序容器,vector,list,deque,forward_list
线性容器包括vector,list,deque。++的优先级高于*应用vector<int>::iterator iter = ivec.begin();// prints 10 9 8 ... 1while (iter != ivec.end())cout << *iter++ << endl; // 返回加一前的副本,然后取值如果使用++...
2019-10-02 19:58:12 198
原创 【socket】三次握手是在listen中完成,accept只从完成连接的队列中拿出一个连接
看了网上的一些博客,说法不一,查阅了相关英文文档,也只了解了大概。所以我就自己设计实验来看下,服务端三次握手到底是在什么时候完成的。首先客户端三次握手毫无疑问是在connect中完成的。服务端到底是在listen中完成还是在accept中完成我们可以设计一个实验,就是说,在服务端只写listen,不写accept。这样一来如果accept参与了三次握手,那么在没有accept的服务端程序中...
2019-09-28 12:51:58 814
原创 【编码规范】命名规则
一般函数,类名,结构体名称,枚举名称采用大驼峰(帕斯卡尔)命名法。取值、设置函数,一般变量,采用下划线法。常量采用k+大驼峰命名法。类数据成员采用下划线命名法,不过结尾要加上下划线。...
2019-09-27 10:39:25 696
原创 【设计模式】单例模式
单例模式分为两种懒汉式:就是使用的时候才会产生实例。饿汉式:一开始就产生实例。具体实现如下:需要注意,成员变量和成员函数必须是静态static的,因为单例模式不允许直接使用构造函数,所以外部只能通过类名来使用相关函数,所以函数及数据成员必须是静态的。//懒汉式#include <iostream>using namespace std;class MyClas...
2019-09-24 19:55:11 168
原创 【数据结构】平衡二叉树
首先注意定义,平衡二叉树和二叉排序树没有直接的关系。平衡二叉树是平衡树,不一定是排序树。所谓平衡树,就是说每个节点它的左右子树的高度之差的绝对值不超过1,并且每个节点的左右子树的和高度差的绝对值不超过1,下面举一些例子:上面两棵树,是不是平衡二叉树?第一颗树,不是平衡二叉树,按照定义,每个子树都是平衡二叉树,那么它才是平衡二叉树,也就是说每个子树的左右子树深度之差的绝对值不超过1。...
2019-09-24 16:07:30 1863
原创 【算法设计与分析】KMP算法
俗称看毛片算法#include <iostream>#include <string>using namespace std;/* P 为模式串,下标从 0 开始 */void GetNext(string P, int next[]){ int p_len = P.size(); int i = 0; // P 的下标 in...
2019-09-18 15:34:29 339
原创 【c++】bigo笔试填坑之强制类型转换
bigo c++后台开发有一道笔试题问下面的程序输出什么。#include <iostream>using namespace std;int main(){ typedef bool BOOL; BOOL a = (BOOL)(1<<16); printf("%d\n",a); typedef unsigned char ...
2019-09-15 11:10:34 569
原创 【2019秋招刷题】牛客:分贝壳
思路:因为牛牛每次取的是剩余贝壳的1/10,所以它取的最多的一次是第一次。但由于妞妞先开始取,所以牛牛取得最多的一次不超过贝壳总数的1/10。这里假设妞妞每次固定取贝壳总数的1/10个,那么最后妞妞手中的贝壳肯定多于牛牛。也就是说,想要达到”妞妞手中贝壳数大于总数的一半,又不想太过分“的话,妞妞每次固定取的贝壳数肯定小于总数的1/10。经过上面的分析,我们发现妞妞每次拿取的贝壳数...
2019-09-12 20:50:30 375
原创 【C/C++】为什么INT_MAX(整形最大值)减去INT_MIN(整形最小值)等于-1
首先INT_MAX是int所能够正确存储的最大整形,是一个很大的正整数INT_MIN是int所能够正确存储的最小整形,是一个很小的负整数。所以很大的正整数减去很小的负整数,将会是一个比INT_MAX还要大的正整数,而int所能正常存储的最大整数是INT_MAX,所以相减后的结果肯定不能正常存储,也就是说会发生溢出,最终导致结果为-1。强烈建议首先看下我的这篇文章,便于理解下面的内容。in...
2019-09-12 20:49:46 1885
原创 【2019秋招刷题】牛客:爬楼梯
题目:思路由于这个具有时间限制,所以要使用动态规划来做,用时间换空间。首先来看,爬上一层只有一种办法,爬上两层也只有一种办法,爬上三层有两种办法。爬上四层,假如说我们是从第三层爬上第四层,那么只有一种办法。假如是从第二层爬上第四层,也只有一种办法。假如是从犯第一层层爬上第四层,那么我们有2种办法。由于你不知道上一步你在第几层,所以我们考虑所有的情况。如果上一次你...
2019-09-12 19:55:15 436
原创 【2019秋招刷题】华为0911笔试题
自动驾驶,发送消息模拟代码如下:#include <iostream>#include <cstring>#include <vector>using namespace std;string charToStr(char chr){ char chr_str[2] = {chr,'\0'}; string str = chr_str; ...
2019-09-11 21:24:51 547
原创 【2019秋招刷题】bilibili笔试题,切割字符串
输入分割符,以及数据,输出切割后的结果比如# : a:3#b:4#c:5,第一个#表示#是key、value对的分割符,:表示:是key和value之间的分割符。数据部分是a:3#b:4#c:5,被切割以后应该输出总的key、value对数,以及结果3a 3b 4c 5代码#include <iostream>#include <map>#in...
2019-09-10 22:26:56 615
原创 【c++】拷贝构造函数和等号重载、友元函数、输入输符号重载
在函数参数是类对象函数返回值是类对象给类对象使用‘=’号赋值时,会调用拷贝构造函数。默认拷贝构造函数不处理静态变量。构造函数可以被重载,析构函数不能被重载。拷贝构造函数赋值运算符重载友元函数不是任何类的成员函数,友元函数可以在类中声明。友元函数访问静态成员时,不需要对象做参数。函数重载在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个...
2019-09-10 11:20:13 314
原创 【c++】静态变量和静态成员函数
原文链接总结:静态成员函数只能访问静态数据成员。非静态成员函数可以访问静态数据成员。公有静态数据成员和静态数据函数,可以直接通过类名访问。静态数据成员的初始化需要使用类名在类外部初始化。静态成员函数中没有this指针。静态数据成员不依赖对象生命周期。#include <iostream>using namespace std;class test{pri...
2019-09-10 09:53:06 516
原创 【嵌入式操作系统】驱动程序编写
一 字符驱动设备dev_t类型是32位数据类型,其中高12位表示主设备号,低20位表示次设备号。MAJOR和MINOR从dev_t分别获得主设备号和次设备号。MKDEV 组合主设备号和次设备号而获得dev_t类型设备号。静态分配设备号:在事先知道主设备号的情况下使用register_chrdev_region()函数动态分配设备号:在事先不知道在事先不知道主设备号的情况下,使用al...
2019-09-09 19:55:28 740
原创 【c++】巧妙解决c++调用python程序的各种麻烦
最近在写一些后端的代码,主要实现向指定邮箱发送验证码的功能。由于用c++写发送邮件的部分,代码比较繁琐,之前用python写过,使用第三方库,发邮件就几行代码的事情。所以想能不能用c++去调用python程序啊,百度一下果然可以,但是发现需要做一些工作,并且这种调用bug重重。所以想到下面这种办法。首先把python代码打包成可执行程序然后让c++去执行这个可执行程序,完美解决,省去了...
2019-09-09 19:54:53 1246
原创 【后端开发】配置mysql和postgresql
启动mysql服务器:mysql server restart修改mySQL服务器密码:mysql -u root -p查看mysql服务器是否启动:service mysql statuslinux安装python包:apt install python-pymssqllinux python2转到python3:...
2019-09-09 19:54:27 410
原创 【c++】基类的析构函数声明为虚函数
如果把基类的析构函数声明为虚函数,那么当使用new等手动申请空间,使得基类的指针指向子类。最后释放基类指针时,会调用子类的析构函数。下面这段代码有问题吗?#include <iostream>using namespace std;class MyClass{private:public: MyClass() { cout<&l...
2019-09-09 19:54:08 863
原创 【vba】vba语言基础
数据类型变量和作用域(1)VBA允许使用未定义的变量,默认是变体变量(2)在模块通用说明部分,加入Option Explicit语句可以强迫用户进行变量定义(3)变量定义语句及变量作用域一般变量作用域的原则是,那部分定义就在那部分起作用,模块中定义则在该模块那作用。数组数组必须用Global或Dim语句来定义:除了以上固定数组外,VBA 还有一种功能强大的动态数组,定...
2019-09-09 14:32:23 1467
最详细最牛逼cmake英文版教程,没有之一
2020-08-09
IEEE Standard for a Software Quality Metrics Methodology
2019-04-12
UML和模式应用(第3版)英文版
2019-02-24
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
2018-11-22
软工原理与实践影印版第四版英文版课后答案-第4版-Shari Lawrence Pfleeger
2018-11-22
直方图均衡
2018-10-21
图像平移,缩放,旋转,偏移(vs2017+opecv)
2018-10-21
linux多线程程序实验,用不同线程完成一个矩阵乘法,以及子进程计算斐波那契数列,父进程输出结果
2018-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人