自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 选择题OJ

在(函数代码少、频繁调用 )情况下适宜采用 inline 定义内联函数内联函数在编译时,类似宏替换,使用函数体 替换调用处的函数名,因此适合代码较少调用较多的函数。对象是指一块能够存储数据并具有某种类型的内存空间4指针是对象而引用不是有效的迭代器指向某个元素,或者容器尾元素的下一个位置;其余的都是无效。如果容器为空,begin和end返回同一个迭代器,都是尾后迭代器—&g...

2019-09-29 20:34:47 854

原创 选择题OJ3 操作系统

一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是 5 次。​ 1第一次(缺1)​ 3 1第二次(缺3)​ 2 3 1第三次(缺2)1 2 3(刚使用的放在前面未使用的依次后移)2 1 31 2 35 1 2第四次(3是最少使用的所以换出)1 5 22 1 53 2 1第五次(5是最少使用的所以...

2019-09-29 20:32:53 4788 1

原创 选择题OJ2

c++继承体系种构造函数的调用顺序C++继承体系中,初始化时构造函数的调用顺序如下(1)任何虚拟基类的构造函数按照他们被继承的顺序构造(2)任何非虚拟基类的构造函数按照他们被继承的顺序构造 +(3)任何成员对象的函数按照他们声明的顺序构造(4)类自己的构造函数class A{ public: A ():m_iVal(0){test();} virtual...

2019-09-28 22:55:04 7774

原创 剑指offfer 51-67 C++

51.构建乘积数组给 定 一 个 数 组 A[0,1,…,n-1], 请 构 建 一 个 数 组 B[0,1,…,n-1], 其中B中的元素B[i]=A[0]A[1]…A[i-1]A[i+1]…A[n-1]。不能使用除法。//B[i]其实就是等于 A 中除 A[i]之外的所有元素之积。//从左到右算 B[i]=A[0]*A[1]*...*A[i-1], 从右到左算...

2019-09-21 20:38:23 161

原创 剑指offer 30-50 C++

30.连续子数组的最大和HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回...

2019-09-21 20:33:00 212

原创 剑指offer C++ 01-29

01.二维数组的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该数。//分析:时间复杂度 O(m+n),m 和 n 分别是行数和列数。空间复杂度 O(1)。 思想是从右上角开始判断,每次判断可以排除一行或一列。class Solution {pub...

2019-09-05 15:08:45 171

原创 线程

线程控制的相关函数//1.创建线程//2.终止线程//3.等待线程//4.线程分离//输出型参数:c/c++中的,#include <pthread.h>//process p 线程//thread t 进程void* ThreadEntry(void* arg){while(1){ printf("in T\n"," "%lu",pthread_s...

2019-09-01 20:28:23 110

原创 gcc,makefile

Linux编译器-gcc/g++使用1.编译过程https://blog.csdn.net/weixin_41143631/article/details/81221777预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)连接(生成可执行文件/库文件)格式 gcc [选项] 要编译的文件[选项] [目标文件]预处理(进行宏替换)预处理功能主要包括宏定义,...

2019-09-01 19:07:30 141

原创 信 号

信号概念信号是进程之间事件异步通知的一种方式,属于软中断信号的作用,相当于神经系统,帮助操作系统来处理运行过程中遇到的各种意外情况信号是一个计数器,负责进行进程间的同步和互斥,整个计数器描述了可用资源的个数每次有进程想申请一个可用资源的时候,计数器-1 p;每次有进程想释放一个可用资源的时候,计数器+1 V;如果计数器已经是0了,这时候再有进程想要申请资源:1.进程...

2019-09-01 19:05:50 207

原创 AVL树

4.2AVL树4.2.1 AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果**数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当 于在顺序表中搜索元素,效率低下。**解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之 差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。一棵AVL树或者是空树,或者是具有以下性质...

2019-08-31 22:43:11 138

原创 map+set+平衡二叉树

1.关联式容器STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在 数据检索时比序列式容器效率更高。特点STL 关联容器的底层数据结构...

2019-08-31 15:10:36 931

原创 C++类型转换

参考链接C++强制类型的转换有四种static_caststatic_cast用于非多态类型的转换(静态转换),编译器隐式执行的任何类型转换都可用static_cast,但它 不能用于两个不相关的类型进行转换。相当于C语言的隐式类型转换。void test2(){ int i = 1; double d = static_cast<double>( i);//注意要...

2019-08-30 10:08:53 86

原创 C++继承

#include <iostream>#include <string>using namespace std;class Person{public: void Print() { cout << "name:" << _name << endl; cout << "age:" << _ag...

2019-08-29 21:19:08 134

原创 C++多态

不规范的重写:在基类函数加了virtual关键字 ,在派生类中重写的成员函数前不加virtual,也是构成重写的。c++的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证取到虚函数表的有最高的性能——如果有多层继承或是多重继承的情况下)接口结成和实现继承普通函数的继承是一种实现继承,派生类继承了基类函数,可以使用函数,继承的是函数的实现。虚函数的继承是一种接口继承...

2019-08-29 21:14:48 79

转载 C++智能指针

转载:链接

2019-08-29 21:09:32 86

原创 C++异常

1.C语言传统的处理错误的方式传统的错误处理机制:终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码 放到errno中,表示错误C 标准库中setjmp和longjmp组合。这个不是很常用,了解一下实际中C语言基本都是使用返回错误码的方式处理错误,部...

2019-08-29 19:45:06 153

原创 C&C++内存管理

1.C/C++内存分布栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。堆用于程序运行时动态内存分配,堆是可以上增长的。数据段–存储全局数据和静态数据。代码段–可执行的代码/只读常量。2.C语言中动态内存管理方式2.1内存分配方式:从静态存...

2019-08-25 18:10:07 160

原创 C++模板

非类型模板参数模板参数分类类型形参与非类型形参。类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。注意:浮点数、类对象以及字符串是不允许作为非类型模板参数的。非类型的模板参数必须在编译期就能确认结果。模板的特化使用模板可以实现一些与类型...

2019-08-25 18:01:35 72

原创 程序环境和预处理,命名空间

#define//#define 定义标识符#define MAX 1000#define reg register //为 register这个关键字,创建一个简短的名字#define do_forever for(;;) //用更形象的符号来替换一种实现#define CASE break;case //在写case语句的时候自动把 break...

2019-08-25 18:01:03 296

原创 vector

vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小 为了增加存储空间。其做法是,分配一个新...

2019-08-25 17:59:03 200

原创 string

字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作 单字节字符字符串的设计特性。string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型。string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_trai...

2019-08-25 00:24:41 470

原创 C++类与对象

1.类的访问限定符及封装1.1访问限定符C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。【访问限定符说明】public修饰的成员在类外可以直接被访问protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)访问权限作用域从该访问限定符出现的位置开始直...

2019-08-24 22:29:43 109

原创 c文件操作

什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。文件名一个文件要有唯一的文件标识,以方便用户识别...

2019-08-23 17:45:17 122

原创 字符串+内存函数

求字符串长度strlen长度不受限制的字符串函数strcpy 字符串拷贝strcat 字符串连接strcmp 比较字符串大小长度受限制的字符串函数介绍strncpy 如果源字符串长度小于num,则用’\0’补齐strncat 和strcat相比,多个参数,把b串的前边的n个字符直接连接到a后边strncmp 和strcmp相比,...

2019-08-22 12:55:31 115

原创 指针与数组的计算 sizeof与strlen

一维数组数组名只有处于以下两种情况时才代表整个数组:①数组名单独在sizeof内时。②  &数组名(如&a)int a[] = {1,2,3,4};printf("%d\n",sizeof(* a));//a是首元素地址,*a是首元素 4 printf("%d\n",sizeof(&a));//数组的地址 4printf("%d\n",sizeo...

2019-08-22 12:52:00 247

原创 结构体内存对齐,位段,枚举,联合

结构体的声明struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢 //特殊的声明//匿名结构体类型 在声明的时候省略掉了结构体标签(tag)struct{ int a; char b; ...

2019-08-22 12:51:04 179

原创 一二维数组,一二级指针传参

一维数组传参void test(int arr[]){}void test(int arr[10]){}void test(int *arr){}void test2(int *arr[20]) {}void test2(int **arr){}int main(){ int arr[10] = {0}; int *arr2[20] = {0}; ...

2019-08-22 12:49:18 399

原创 指针及相关知识总结

一、什么是指针?*是 取指针目标运算符指针变量名与内存位置之间的关联由编译器实现,硬件可通过地址访问内存位置指针是有类型的,指针的类型决定了指针的±整数的步长,指针解引用操作的权限。指针就是地址,地址就是指针;指针变量是一个变量,它保存了基本类型变量的地址。如果指针变量p保存了变量a的地址,那么称作p指向了a,*p 就是变量a。如果p是一个指针变量,*p 表示了...

2019-08-22 12:44:34 300

原创 *p++ *++p (*p)++三者区别详解

给出程序片段,方便测试以下各种结果#include <stdio.h>int main(){ int b[5] = { 11 22 33 44,55}; int *p = b; printf("%d\n", p); for (int j =0 ; j < 5; j++) printf("%d ", *p++); printf(...

2019-08-17 14:40:36 615

原创 C语言分支与循环

关键字static在C语言中: static是用来修饰变量和函数的修饰局部变量修饰全局变量修饰函数static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源...

2019-08-14 22:31:36 408

原创 C语言函数

函数的参数实际参数(实参):真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。形式参数(形参):形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。...

2019-08-14 22:30:58 81

原创 汉诺塔问题——C语言经典递归问题

问题描述汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?分析问题假设除了a最下面的...

2019-08-14 22:30:23 3347

原创 青蛙跳台阶——C语言经典递归问题

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?问题分析跳一个台阶有1种跳法,两个有2种跳法,三个有3种跳法,四个有5种跳法,五个有8种跳法…∴ 当n=1时Fib=1,​ 当n=2时Fib=2,​ 当n>=3时Fib=Fib(n-1)+Fib(n-2)代码#include <...

2019-08-14 22:29:43 1011

原创 OJ of stack&deque

栈的弹出、压入序列//题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)bool IsPopOrder(vector<int> p...

2019-08-13 20:47:03 162

原创 stack & deque

deque(发音类似“deck”),是双端队列不规则的首字母缩写,双端队列是动态大小的序列式容器,其可 以像两端进行伸缩。特定的库可以以不同的方式实现deque,但通常都是一种动态数组。不论在何种情况下,它都允许通过 随机访问迭代器直接访问单个元素,可以根据需要动态的伸缩。因此,deque提供了一些与vector相似的功能,但deque在头部和尾部进行数据插入和删除操作更加高 效。与vec...

2019-08-13 20:46:30 553

原创 list

list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向 其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高 效。与其他的序列式容器相比(arra...

2019-08-13 20:45:01 82

原创 OJ of vector

只出现一次的数字//先排序,再双指针对比int singleNumber(vector<int>& nums) { sort(nums.begin(), nums.end()); for(int i = 0, j = 1; j < nums.size(); i += 2, j += 2){ if(nums[i] != nums[j]) ...

2019-08-12 14:38:47 263

原创 string OJ

把字符串转成整数//实现Integer.valueOf(string)的功能class Solution { public: int StrToInt(string str) { int n = str.size(), s = 1; long long res = 0; if...

2019-08-09 00:16:29 89

转载 git问题解决

转载自:https://my.oschina.net/u/2438381/blog/1568152问题描述git提交,push,commit后都没有绿色小勾提示,也没有更改过任何配置文件,崩溃啊超级烦的,然后看了一些方法都不太可行,最后找到了这个,完美解决,重归美好。分析成因Windows Explorer Shell 支持 Overlay Icon 最多15个,Windows自身已...

2019-08-06 13:22:29 203

转载 大小端是什么?怎么测试当前机器是大端还是小端

大端和小端是什么?大端存储模式:就是内存的低地址上存着数据的高位,高地址上存着数据的低位。小端存储模式:就是内存的低地址上存数据的低位,而高地址上存数据的高位。为什么要有大小端?在计算机系统中,规定:每个地址单元都会对应一个字节(8个bit),但是,在c语言中,除了有一个字节(8个bit)的char,也有两个字节(16个bit)的short,也有四个字节(32个bit)的long(在...

2019-08-05 13:42:39 567

空空如也

空空如也

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

TA关注的人

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