- 博客(44)
- 收藏
- 关注
原创 python报错:TypeError: descriptor ‘__init__‘ requires a ‘super‘ object but received a ‘str‘
今天在使用python练习时遇到了一个问题,几经周折才搞明白错误原因,所以在这里总结一下我使用版本的是python2.7talk is cheap, show me the codeclass Person(): """一个人类,作为父类""" def __init__(self, name, age, sex): """父类初始化方法""" self.name = name self.age = age self.se
2020-12-21 10:39:58
1662
原创 Windows上MySQL数据库忘记密码总结
之前在学习MySQL的时候,设置了root的密码。最近有用到MySQL时,发现忘记了密码,在网上找了一些方法,虽然最终解决了,但是常见的方法没有解决我的问题,所以我就将这个问题总结一下。MySQL数据库忘记密码的解决方法有三种: 我是使用第三种方法重置了MySQL数据库的root密码方法一:常见的解决方法(可以解决大部分人的问题)先停止MySQL服务可使用指令net stop mysql 关闭或者打开"服务"找到"MySQL"后右键停止MySQL服务;使用管理员权限打开CMD命令提示符,
2020-12-16 15:30:48
855
原创 算法:根据Rand5()函数构造生成Rand7()
根据Rand5()函数构造生成Rand7()解法:1.利用预置数组;2.构造大的整数区间,限制整数区间,最后映射整数区间.
2020-02-23 13:50:31
1707
原创 LeetCode: 22括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。解决方法: 回溯法 和 暴力求解法
2020-02-01 17:04:03
226
原创 CGI机制,CGI程序以及FastCGI
博主在完成一个Web服务器的项目时,遇到了一问题:当浏览器请求服务器上的资源不是静态页面,而是可执行程序时,服务器该如何处理呢?之后,博主在网上查阅了一些资料得知,当浏览器请求的资源不是静态网页,而是一些php,asp或者可执行程序的时候,就需要CGI程序来处理了。本篇博客,就是来解释什么是CGI?什么是CGI程序?CGICG(common Gateway Interface)即通用网关接口...
2019-12-07 22:40:54
464
原创 C++:四种类型转换符
C语言中的类型转换只需要在变量名前加上想要转化成的变量类型即可;如://c风格的类型转换int a = 1;double b = 1.1a = (double)b;b = (int) a;但是这种简单的转换方式有一些缺陷:转换过于随意;C风格的类型转换在时,没有任何的限制,容易引起一些未知的问题;C风格的类型转换没有统一的关键字和提示符。在代码较多的情况下,排查时容易忽略;...
2019-12-07 17:43:54
309
原创 【python】错误SyntaxError: invalid syntax的解决方法总结
今天学习了python,然而刚开始就出了一个难题,明明代码没有一点问题,可是每次运行都会显示 “SyntaxError: invalid syntax”。“SyntaxError: invalid syntax” 的意思就是 语法错误;经过查询解决了这个问题,所以总结一个这个问题的解决方法:版本问题:因为python2和python3是不兼容的;可以尝试更换版本;粗心问题:忘...
2019-10-29 16:59:50
2174219
146
原创 shared_ptr智能指针缺陷的解决方法
在上一篇博客C++:智能指针中详细介绍了C++中的一些智能指针,其中,shared_ptr智能指针有三个缺陷:线程不安全;不能管理malloc出来的资源,不能管理文件指针;可能会产生循环引用的问题;第三个缺陷(循环引用)的解决方法在C++:智能指针这篇博客中已经解决了;本篇博客主要介绍第一和第二中缺陷的解决方法;目录: 1...
2019-10-18 18:32:59
2667
原创 C++:智能指针
RAII是什么?RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。智能指针(std::shared_ptr和std::unique_ptr)即RAII最具代表的实现,使用智能指针,可以实现自动的内存管理,再也不需要担心忘记delete造成的内存泄漏。毫不夸张的来讲,有...
2019-10-09 23:25:50
893
1
原创 【剑指offer】面试题3:数组中重复的数字
第一类:题目描述:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了。也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如:输入长度为7的数组{2,3,1,0,2,5,3},对应的输出为数字2或3。方法一:int Find1(int* arr, int size){ sort(arr, arr + size);...
2019-09-22 22:04:40
200
原创 【剑指offer】面试题65:不用加减乘除做加法
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用 “+”,“-”,“*”,“/”四则运算符号。解题思路: 三步走: 1. 将两个数按位相加,不考虑进位(即做异或操作);2. 处理第一步没有考虑的进位,将两个数按位相与,将结果左移一位;3. 将第一步和第二步的结果相加,如果产生进位,继续重复前两步,直到不产生进位为止;这个思路就是将十进制运算转换成二进制运算:两个二进...
2019-09-19 18:38:35
145
原创 模拟实现一个简易的Shell
在实现这个简单的shell时,需要了解进程创建,进程调度,进程等待,进程替换的概念。这在我之前的博客中有比较细致的解析;
2019-08-05 19:18:05
1132
原创 Linux:利用wait()函数得出子进程的退出状态
在上一篇博客中提到进程等待时,用到了两个函数wait()函数和waitpid()函数;在这两个函数中都有这样一个整型参数status,这个参数的作用就是:获取子进程退出状态;那么如何利用这个参数来得出子进程的退出状态?首先,先来了解一下这个参数的结构...
2019-08-01 19:29:36
1322
原创 Linux:僵尸进程和孤儿进程
Linux下新进程可以由fork()函数来创建,父进程会根据fork()函数的返回值(-1,0,大于0)来做出判断。通常情况下,父进程在子进程退出后,做一些“善后”工作(即进行一些资源清理的工作),子进程退出时,只会把打开的文件句柄,内存占用,打开的资源进行释放,但是不会清理进程控制块PCB信息,接下来就是父进程的工作了。那么如果父进程没有完成好“善后”,会出现什么问题呢?- 僵尸进程1. ...
2019-07-24 22:45:27
207
原创 C++:动态绑定和静态绑定
静态类型和动态类型静态类型和动态类型是针对于对象来说的:对象的静态类型:就是它在程序中被声明时所采用的类型(或理解为类型指针或引用的字面类型),在编译期确定;对象的动态类型:是指类型指针或引用的实际类型,在运行期确定;静态绑定和动态绑定静态绑定又称为前期绑定(早绑定),在程序编译期间确定了程序的行为,也称为静态多态,比如:函数重载;动态绑定又称后期绑定(晚绑定),是在程序运行期间...
2019-07-23 19:44:35
258
原创 Linux:目录,权限和基本命令
几种基本指令:Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp权限:
2019-05-19 20:07:34
326
原创 C++特性之继承
1.继承的概念及定义2.基类和派生类对象赋值转换4.继承中的作用域5.派生类的默认成员函数6.继承与友元7.继承与静态成员8.复杂的菱形继承及菱形虚拟继承9.继承的总结和反思...
2019-05-16 22:06:45
224
原创 Linux:开发工具(常见编辑器)
Linux下常见的几种编辑器:VimVim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。它具有代码补完、编译及错误跳转等方便编程的功能,在程序员中被广泛的被使用。Vim和Emacs并列成为Linux系统用户最喜欢的编辑器BracketsBrackets是由Adobe Systems为Linux开发者设计开发并在GitHub上发布的开源前端开...
2019-05-12 20:27:10
2023
原创 new和delete的底层实现原理
- new/new[]和delete/delete[]是什么?new/new[]和delete/delete[]是操作符;是C++用来实现动态内存管理的操作符;new/new[] 操作符是用来申请空间的;delete/delete[]操作数是用来释放动态申请出来的空间;- new/delete的实现原理new和delete是用户进行动态内存申请和释放的操作符,operator new...
2019-05-10 22:57:42
6332
原创 利用Linux简单实现彩色进度条
#include<stdio.h>#include<Windows.h>int main(){ char bar[102]; char laber[] = "|/-\\"; memset(bar,0,sizeof(bar)); for (int i = 0; i < 101; i++) { printf("[%-100s][%2d%%][%c]\...
2019-05-03 20:24:33
242
原创 C语言:动态内存管理方式(malloc,calloc,realloc,free)
为什么要进行动态内存管理?进行动态内存管理的几个函数开辟空间的函数1.malloc()2.calloc()3.relloc()释放内存空间的函数4.free()
2019-05-02 16:44:02
407
原创 C++:浅拷贝的解决方法(深拷贝(传统写法,现代写法),写时拷贝)
什么是浅拷贝?第一种方法:深拷贝(传统方法)第二种方法:深拷贝(现代简洁方法)第三中方法:写时拷贝
2019-04-20 23:06:38
971
转载 C++:空类和空结构体的大小为1的原因
对于空结构体和空类大小是1这个问题,首先这是一个C++问题,在C语言下空结构体大小为0(当然这是编译器相关的)。这里的空类和空结构体是指类或结构体中没有任何成员。在C++下,空类和空结构体的大小是1(编译器相关),这是为什么呢?为什么不是0?这是因为,C++标准中规定:“no object shall have the same address in memory as any ot...
2019-04-17 23:34:43
467
原创 C语言:检测机器是大端还是小端的方法
多种方法1.int a = 1;((char*)(&a))2.共用体union{int a ;char i ;}union u;u.a = 1;u.i = ?
2019-04-10 16:58:40
2447
原创 数据结构:有关结构体的几个小问题(#pragma pack(), offsetof宏 )
#pragma pack()用法;offsetof宏的用法;
2019-04-07 17:26:13
327
原创 数据结构:排序(插入,选择,交换,归并)及其特性
常见排序算法1.插入排序(直接插入排序,希尔排序)直接插入排序//直接插入排序void InsertSort(int* array, int size){ int i = 0,j = 0,k = 0; for (i = 1; i < size; i++) { for (j = i - 1; j >= 0; j--) { if (array[j] < ...
2019-04-07 11:38:29
1338
转载 计算时间复杂度和空间复杂度的方法
转载一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。文章最后,举例使用二分查找和斐波那契的递归和迭代方法,分别说明时间和空间复杂度。时间复杂度:首先要说的是,时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。 当我们面前有多个算法时,我们可以通过计算时间复杂度,判断出哪一个算法在具体执行时花费时间最多和最少。常见的时间复杂度有:常数阶O(1),...
2019-03-29 14:29:50
470
原创 结构体和结构体的大小(内存对齐规则)
结构体定义:结构体的功能:举例(代码):重点——结构体的大小类定义:类的功能:举例:重点——类的大小链接(内存对齐——规则及原因)结构体与类的联系...
2019-03-29 14:12:28
5840
3
原创 C++:C++入门知识总结
C++C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++有四大特性:抽象,封装,继承,多态。 这些特性将会在后面的博客中详细解释。在这篇博客中主要总结一下C++入门的基础知识;1.C++文件的命名方式创建C++工程的文件的命名方式与C语言不同,C文件的后缀为:.c ,而C+...
2019-03-21 18:03:07
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人