- 博客(38)
- 收藏
- 关注
原创 Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7_6.6.x86_64 libgcc-4.8.5-36.el
gdb调试时出现的问题:在终端上输入: debuginfo-install glibc-2.17-260.el7_6.6.x86_64 libgcc-4.8.5-36.el7.x86_64 libstdc+±4.8.5-36.el7.x86_64会显示:在终端上输入: yum install yum-utils再在终端输入输入 debuginfo-install glibc-2.17...
2019-07-31 18:17:39 1634 1
原创 VS Code遇见Please install [clang](http://clang.llvm.org/) or check configuration `clang.executable`
问题解决在Linux终端上输入:yum install clang要在root权限下进行下载
2019-07-24 23:30:26 2206
原创 进程控制
进程创建进程调用fork,当控制转移到内核中的fork代码,内核做:1.分配新的内存块和内核数据结构给子进程2.将父进程部分数据结构内容拷贝至子进程3.添加子进程到系统进程列表当中4.fork返回开始调度器调度fork之前父进程独立执行,fork之后,父子两个执行流分别执行。fork后,谁先执行完全由调度器决定。写时拷贝读时共享,写时拷贝。父子代码共享,父子不在写入时,数据也是共享...
2019-05-15 16:32:11 156
原创 进程的概念
操作系统一款纯正的"高管理”的软件1.描述,用strcut结构体(PCB)在linux中是task_struct2.组织,通过双向链表系统调用由操作系统提供的接口,就是系统调用在使用上,功能比较基础,对用户的要求相对较高进程概念:正在执行的一个程序内核 :担当分配系统资源(cpu时间,内存)的实体查看进程通过命令top和ps进行查看ps 一般这样用 获取进程标示符获得进...
2019-05-15 15:26:18 168
原创 task_struct的详细信息
进程信息被放在进程控制块的结构体中,成为PCB,linux操作系统下的PCB时task_struct内容分类1.pid(进程标识符)2.内存指针(告诉进程代码/数据都在内存的哪个部分)3.进程状态R就绪状态,进程在就绪队列中,就会处于这个状态S睡眠状态,暂时还轮不到它D深度睡眠状态,密集的进行IO操作的时候(吐coredump)T暂停状态t跟踪状态X进程已经结束,只是在Linu...
2019-05-10 13:47:36 155
原创 vim的基本操作
vim 文件 打开一个文件,不存在就会创建新文件:q 退出vim 是一个多模式的文本编辑器x 删除光标下字符i进入插入模式A进入插入模式,光标在行尾dw 从当前位置开始删除到下一个单词开始位置de 从当前位置删除到单词末尾d$ 从当前位置删除到行末dd 删除整行ctrl + z 切换程序到后台fg 切换回刚才的程序u 撤销一处的修改U 撤销整行的修改vim 中删除的...
2019-04-27 15:06:29 130
原创 Linux常见的操作指令
1.ls语法 ls [选项] [目录或文件]功能 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息选项:-l 显示出目录或文件的详细信息 ls -l 也可以用 ll-a 显示出所有文件包括以点开头的隐藏文件2.pwd语法 pwd功能 显示当前所在的目录3.cd语法 cd 目录名功能 直接跳转到指定目录下cd … 跳到上一个目录cd ~ ...
2019-04-21 21:08:51 233
原创 C++的多态
一.多态的概念和定义多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态。虚函数:就是在类的成员函数的前面加virtual关键字多态前提: 继承调用函数的类型必须是指针或者引用被调用函数必须为虚函数,并且被重写(函数名,参数,返回值全部相同)函数重写: 协变: 返回值的类型可以是继承关系多态看实际指向的对象,调用对象对应类型的代...
2019-04-19 19:19:25 99
原创 C++的继承
继承一.继承的定义和概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用基类class Person{public: void Print()...
2019-04-16 13:21:47 139
原创 逆波兰表达式求值
class Solution {public: //中缀表达式:运算符在中间 //后缀表达式:运算符在操作数的尾部 //1.操作数入栈 //2.遇到操作符,从栈中取出操作符需要的操作数,取出的操作数的位置应该为 //从右向左,进行运算,运算的结果继续压栈 //3.重复1.2 //4.返回栈顶元素,即为最终结果 i...
2019-04-06 14:49:45 189
原创 LeetCode两数相加(链表)
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if(nullptr==l1){ return l2; &...
2019-04-04 19:35:08 187
原创 list的底层实现
list的介绍list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向 其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高 效。 比特科技构造函数 接口说明l...
2019-04-03 15:12:16 5386 1
原创 vector的实现
需要注意的点全部都在代码中有注释#include <iostream>#include <string>#include <assert.h>using namespace std;template <class T>class Vector{public: typedef T* iterator;//迭代器 typedef c...
2019-04-01 17:48:55 169
原创 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0...
2019-03-30 15:02:39 123
原创 懒汉模式
class Singleton{public: static Singleton* GetIntence(){ if (nullptr == _Intence){//因为用互斥锁是非常繁重的 所以采用双检查 _mtx.lock(); if (nullptr == _Intence){//判断空指针了才给申请新空间不然直接给以前申请的_Intence _Intence...
2019-03-26 20:08:26 494
原创 String类的实现
构造函数的实现String(char *str = "")//在STL库中的string是不允许str是空指针所以在这里将它设为缺省函数就是给str默认值 :_size(strlen(str))//用初始化 列表时应注意在声明变量时的顺序 ,_capacity(_size) ,_str(new char[_size+1]){ strcpy(_str, str); }拷贝构造函数...
2019-03-26 19:58:42 409
原创 C++实现Singleton单例模式(饿汉模式)
饿汉模式在线程创建之前实例就已经被创建好,所以它的线程是安全的思路:将它的构造函数私有化,拷贝构造函数,赋值运算符重载私有化。防止它可以继续创建新的对象因为它要在线程创建之前就要把对象创建好,所以在类里面用static关键字来声明,在类外定义因为现在你已经在类外创建不了对象,所以必须在public里面创建一个static定义的函数来返回这个对象如果有什么问题可以共同讨论共同提高代...
2019-03-25 13:04:49 866
原创 反转字符串Ⅱ(力扣)
给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。void reverseK(string &s, int begin, int end){//反转函数从begin到end while(begin...
2019-03-23 18:37:28 516
原创 字符串相加(力扣)
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。代码块所遇见的坑全在代码里进行了注释class Solution {public: ...
2019-03-23 15:32:34 310
原创 C++的模板
用模板,可以减少一些只是因为类型不同而要重新写一个函数或者类的烦恼函数模板格式template<typename T> void Swap( T& left, T& right) { T temp = left; left = right; right = temp; }typename 可以用class替...
2019-03-21 09:07:12 109
原创 设计一个类只能在堆上或只能在栈上创建对象
只能在堆上创建对象的思路先将构造函数私有化拷贝构造函数私有化或者用C++11的直接将拷贝构造函数删除只能在栈上创建对象第一种思路跟只能在堆上创建对象的思路一样第二种因为在堆上创建对象就要用到new的关键字而new的关键字在底层实现的时候需要调用 operator new这个函数 所以直接将这个函数私有化或者删除从而使new关键字不能开辟空间。#include<iostr...
2019-03-18 18:52:38 184
原创 C&C++内存管理
一.C&C++内存分布1.栈里面存非静态局部变量/函数参数/返回值/指针,栈是向下生长的2.内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共 享内存,做进程间通信3.堆用于程序运行时动态内存分配,堆是向上增长4.数据段存储全局变量和静态数据5.代码段可执行的代码/只读常量(字符串)二.C语言中动态内存管理方式1.malloc:申请...
2019-03-18 17:29:43 121
原创 C++运算符重载
#include<iostream>#include<stdlib.h>class Date{public: void DisPlay(){//打印函数 std::cout << _year << "-" << _month << "-" << _day
2019-03-18 16:59:10 133
原创 冒泡排序
#include<stdio.h>#include<stdlib.h>void Swap(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}void BubbleSort(int arr[], int size){ int flag = 1; for (in...
2019-03-15 11:32:27 97
原创 归并排序(递归)
归并排序就是将一个数组分为两个数组,再将两个有序数组合成为一个数组。#include<stdio.h>#include<stdlib.h>void Merge(int arr[], int left,int mid, int right, int *extra){ int size = right - left;//传进来的数组大小 int e...
2019-03-15 10:53:35 329
原创 类型在内存中的存储
数据类型介绍在32位平台中char 1个字节也就是8个比特位short 2个字节int 4个字节long 4个字节long long 8个字节float 4个字节double 8个字节类型的归类:数据类型char, shrot, int, long,long long都为整型;char因为跟整型存储方式一样所以被称为整形。float,double为浮点数;自定义类型数组...
2019-03-14 19:20:12 143
原创 快速排序的三种方法(递归)
快排一.确定基准值有3种选最左或者最右的那个数作为基准值三数取中法(就是取left,mid和right三个数中中间的那个数作为基准值)取随机值作为基基准值二.将数组分为两部分比基准值小的放在左边,比基准值大的放在右边1.Hover法:b就是下面代码的begin e是end2.挖坑法:用圆圈圈的为坑3.前后下表法:c就是代码里面的i三.分治算法(将一个大问题转化为两个小...
2019-03-14 19:15:32 2076
原创 插入排序和希尔排序
希尔排序就是插入排序的优化#include<stdio.h>#include<stdlib.h>void swap(int* a, int *b){ int tmp = *a; *a = *b; *b = tmp;}void Printf(int arr[], int size){ for (int i = 0; i < size; i++){ ...
2019-03-14 15:00:25 131
原创 用C++解决求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
因为这个题是我在牛客上面刷到的所以直接用的牛客网的接口这个题上我算遇见的坑我都注释在代码中。用C++解决的思路:就是创建个含有n个类的数组,这样就可以调用n次构造函数而每个构造函数里面你都要进行如下sum(){_sum+=_i;_i++;}};这样就可以完成了题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件...
2019-03-11 19:30:29 1261 1
原创 C++解决根据输入的日期,计算是这一年的第几天。。
根据输入的日期,计算是这一年的第几天。。详细描述:输入某年某月某日,判断这一天是这一年的第几天?接口设计及说明:/*****************************************************************************Description : 数据转换Input Param : year 输入年份Month 输入月份Day...
2019-03-11 18:25:36 6082
原创 C语言—插入排序
插入排序#include<stdio.h>#include<stdlib.h>void swap(int* a, int *b){int tmp = *a;*a = *b;*b = tmp;}void Printf(int arr[], int size){for (int i = 0; i < size; i++){printf("%d “, a...
2019-03-11 16:21:37 129
原创 C语言选择排序
C语言—选择排序#include<stdio.h>#include<stdlib.h>void Swap(int *a,int *b){int tmp = *a;*a = *b;*b = tmp;}void Printf(int arr[], int size){//打印函数打印数组for (int i = 0; i < size; i++){pr...
2019-03-11 15:54:19 172
原创 类和对象(下)
1.构造函数体赋值因为初始化初始化一次而构造函数可以进行多次赋值,所以不能称为初始化。2.初始化列表以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括 号中的初始值或表达式1)每个变量在初始化列表中只能出现一次2)类中包含以下成员,必须放在初始化列表位置进行初始化a.引用变量成员b.const成员变量c.类类型成员(该类没有默认构造函数)3...
2019-03-10 22:58:03 89
原创 类和对象(中)笔记
1.C++中struct和class的区别是什么? 答:C++需要兼容C语言,所以C++中struct可以当成结构体去使用。 另外C++中struct还可以用来定义类,和class是定义类是一样的。 区别是struct的成员默认访问方式是pub.
2019-03-08 22:14:18 161
原创 c++入门的笔记
1.命名空间是为了解决名字的冲突2.缺省参数分为全缺省和半缺省(从右向左依次缺省)3.函数重载:函数名相同,参数类型个数顺序不同4.引用是一个变量的别名,作返回值时它的生命周期要大于函数的生命周期 引用语法层面:和引用实体指向同一块内存空间,引用本身没有开辟新的空间。 引用底层实现:引用开辟新的空间,和指针实现相同。引用和指针的区别:1)引用在定义是必须初始化...
2019-03-07 21:24:17 111
原创 C++的入门1
因为自己已经对C语言已经熟悉了解,在有C语言的基础上从今天开始学习C++。一.命名空间1.普通的命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空 间的成员。例:namespace N1{}2.命名空间可以嵌套。例:namespace N1{namespace N2{}}3.同一个工程中可以同时存在多个相同名称的命名空间,但...
2019-03-06 22:56:44 134
原创 自己在堆排序上的思路和遇见的问题
##堆排序第一步:建堆。在给一个数组的前提下建堆,建大堆而建大堆最重要的就是向下调整。而我自己在尝试堆排序的时候也是在向下调整出的错。#向下调整:1.要判断是不是叶子结点,而堆是一个完全二叉树所以就只用判断有没有左子树。2.接下来判断有没有右子树,并且比较左子树的值和右子树的值的大小。3.用子树中的较大值和根结点作比较如果大于根的话交换。交换的时候要注意传的是地址。第二步:排序。当你的大堆已...
2019-03-05 15:57:07 421
原创 我的第一次
因为自己对编程十分的感兴趣,所以在2018年9月16日注册了这个博客,并且发表自己的第一篇博客。 我叫白文博,是一位来自陕西咸阳的小伙。现在就读于西安科技大学通信与信息工程电子信息专业,2020年毕业。我学习编程的目标就是十分单纯因为自己对一些游戏十分感兴趣但是却不了解这些游戏是如何用代码所搭建起来的所以就是为了搞清楚这些以及自己再后来能够自己用代码搭建出许多的游戏,还有就是现在我们用的许多网站...
2018-09-16 15:08:09 160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人