- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 一种数据分页方法
一种数据分页方法工作中对数据进行分页的场景很常见,分享一种分页方法private static <T> List<T> startPage(List<T> list, Integer pageNumber, Integer pageSize) { if (list == null || list.size() == 0) { return new ArrayList<>(); } int count = list.size(); // 记
2021-02-26 14:53:59
271
转载 重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor
转载【https://www.cnblogs.com/gumuzi/p/5711495.html】重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)一般这个错误是由密码错误引起,解决的办法自然就是重置密码。假设我们使用的是root...
2019-01-16 14:39:45
1592
1
原创 强制类型转换
C++ 在设计中一直强调类型安全,而且也采取了一定的措施来保障这条准则的执行。但是,从C继承而来的强制转型却破坏了C++类型系统,C中的强制转型可谓是“无所不能”,其超强的能力给C++带来了很大的安全隐患。强制转型会引起各种各样的麻烦,有时这些麻烦很容易被察觉,有时它们却又隐藏极深,难以察觉。 C++兼容C,所以C++提出了自己的一套类型转换机制,分别是:static_cast、rein...
2018-08-08 13:57:01
560
原创 C++之智能指针
C++不同于java的一个方面就在于程序员自己动态开辟的空间要自己手动释放,也就是说C++让程序员自己管理自己的内存,这一方面提高了编译器的效率,减轻了编译器的负担,同时另一方面,这也给我们带来了内存安全的问题。内存的管理永远是C++程序员需要慎重的地方。 内存的常见错误各种各样,都是对内存的非法操作,特别是当我们引入异常以后,程序会变得非常的跳脱,这导致了最后我们开辟的内存往往会泄露,...
2018-05-21 17:28:16
368
原创 C++虚表
虚函数 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数称为虚函数,语法格式:virtual 成员函数名() 重写:必须是虚函数子类定义了一个和父类完全相同的成员函数,包括返回值类型、函数名、参数列表重写也称为覆盖 上代码镇楼:class A {public: virtual void func() { ...
2018-05-09 16:02:10
1360
原创 进程间的通信(一)消息队列
消息队列 消息队列是存储消息的线性表,是消息在传输过程中的容器,消息队列一经创建,即可以向队列中写入指定类型消息,其他进程可以从该队列中取出指定类型的消息。 消息是进程间通信的数据内容,在消息队列机制中,消息是有类型的,也就是说,一条消息不仅包括数据,也包括消息的类型信息,对于同一个消息队列来说,可以存储不同类型的信息,进程可以根据需要从消息队列中取出自己需要的类型信息。 ...
2018-05-01 15:40:36
340
原创 单继承与多继承与boss菱形继承
单继承 一个子类只能有一个直接父类称为单继承。简单的一对一关系。 多继承 1. 一个子类有多个直接父类称为多继承。一对多关系。 class AA{public: int _a;};class BB {public: int _a; int _b;};class CC :public BB,public AA{publ...
2018-04-22 17:48:52
716
原创 浅谈C++继承
如今的面向对象的语言特性都包括抽象、封装、继承、多态四个特点,C++也同样,那么什么是继承? 继承的基本概念 继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。C++的继承关系就好比生活中的家庭关系一样,比如说你家里有两个矿,那么作为孩子的你将来肯定是要继承你父母给你留的财产,并在原有的基础上你会开辟自己...
2018-04-22 12:08:17
391
原创 探究new和delete的秘密
简介: new 和 delete 是 C++ 用于管理 堆内存 的两个运算符, C 语言中的malloc 和 free是函数,而C++中new 和 delete 是运算符,malloc和new都属于动态的分配内存。 .有了malloc、free为什么还要有new、deletemalloc和free是C++/C语言的标准库函数,new/delete是C++中的运算符,都可用于...
2018-04-20 16:01:28
588
原创 简述makefile文件
简介: makefile相当于一种脚本语言,在编写makefile过程中可以使用变量、控制结构语句、函数等一般编程语言的特性,而makefile诞生的本质是实现自动化编译,为程序员谋福利。makefile区别于其他语言最大特点是:其执行是由所编译文件的依赖关系驱动的。makefile文件的组成内容 主要有以下五种组成部分: 1. 显示规则: 显示规则说明了生成一个或多个目...
2018-04-11 20:00:26
886
原创 static类成员、static类函数
1.static类成员 1.静态数据成员是一种特殊的数据成员,以关键字static修饰。 2.静态的数据成员在内存中只占一份空间,保存在全局区(静态区),即静态数据成员属于类而不属于对象,为所有实例(对象)共享,当某一个实例(对象)修改了该静态成员变量,其修改值为所有实例(对象)可见。 3.静态的数据成员不占用对象的空间,保存在全局区,所以声明多个对象时,静态的数据成员依然只在全...
2018-03-26 23:32:56
565
原创 C++中inline的用法
-引入inline的原因 为了解决一些频繁调用的函数大量消耗栈空间的问题,C++特地引入inline修饰符,表示为内联函数。编译时C++编译器会在调用内联函数的地方展开内联函数,没有函数压栈的开销,内联函数提升程序运行的效率。class Date{public : void Func () // 定义在类内部默认为内联函数 {} void Display ()...
2018-03-26 16:02:02
418
原创 const成员变量与成员函数
1. const成员变量 const修饰的成员变量只能用构造函数初始化列表进行初始化,不能进行赋值初始化,引用和const一样,只能在初始化列表进行初始化。class Date{private: int _year; int _month; const int _day;//声明const变量public: Date(int year=1990,i...
2018-03-26 15:37:46
911
原创 类的六个默认成员函数(未完待续)
1. 构造函数 程序中常需要对变量赋初值进行初始化,这在基于过程的程序中是很容易的,在定义变量时赋以初值,比如: int a = 10; 而在基于对象的设计中,在定义一个对象时,也需要做初始化的工作,即对成员变量赋初值进行初始化。对象代表一个实体,每一个对象都有它确定的属性(成员变量),在系统为对象分配内存时,应该对有关的数据成员初始化。 -如果一个类的所有成员变量都是公有的,...
2018-03-23 16:43:32
251
原创 巧算二进制中1的个数
题目:给出一个正整数输出其二进制中1的个数 例如: int a=7;//其二进制表示:0000 0000 0000 0000 0000 0000 0000 0111//其1的个数为3,输出31.一般解法: 一位一位判断,移位加计数,统计出1的个数int BitCount1(int num){ int count = 0; while (num != ...
2018-03-21 20:33:48
656
原创 引用和指针那些事
对一个数据建立一个“引用”,其作用是为一个已经定义的变量起一个别名【1】引用的格式 类型& 引用的变量名(别名)=定义过的变量名 比如有一个变量a,想给他起一个别名:int a=10; //定义一个变量aint& b=a; //声明b是a的引用cout<<a<<endl; //10cout<<b&...
2018-03-19 17:02:22
311
原创 搜索二叉树
二叉搜索树又称二叉排序树,它或者是一棵空树,或者具有以下性质的树: - 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 - 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 - 它的左右子树也分别为二叉搜索树注意:搜索二叉树中没有相同的值。 因为搜索二叉树结构的特殊性,左子树永远比根节点小,右子树永远比根节点大,所以中序遍历一次二叉树,就可以得到一个升...
2018-02-27 15:53:50
483
原创 堆排序
堆排序是利用堆而设计的一种排序算法,堆排序是一种选择排序,它平均时间复杂度为O(nlogn),它是不稳定排序 **堆排序的基本思想: 将待排序序列构造成一个大堆(升序),(降序采用小堆)此时,整个序列的最大值就是堆顶的根节点,将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复循环执行,便能得到一个有序序列了void Ad...
2018-02-26 21:28:28
286
原创 堆的top-k问题
在大规模数据处理中,遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题被称为“top K”问题。 堆的建立 解决top-k问题,可以用建堆方法来处理,选取最高或者最低的数据可以建立小堆来处理。 解决方案: 在海量数据中查找最大的前K个数,可以建立一个以K大小的小堆,小堆特点是堆顶(数组第一个元素)为当前堆结构的最小值,在海量数据中再次查找...
2018-02-26 21:18:30
526
原创 堆---优先级队列
1.优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。 2.用堆实现的优先队列中,最大堆只能对应最大优先队列,最小堆则是对应最小优先队列。 堆的实现,戳这里PriorityQueue.h#define N 1000typedef int Datatype;typedef...
2018-02-26 08:57:16
347
原创 堆的常见操作
完整代码戳这里 【1】在一个关键码集合中挑选具有最小或最大关键码的元素进行处理的数据结构称为优先队列,堆(heap)也称为优先队列,堆的所有元素按照完全二叉树的顺序存储在一个一维数组中,同队列一样,堆在堆底插入元素,在堆头删除元素。 【2】堆可分为大堆和小堆。大堆:父亲节点大于等于其孩子节点;小堆:父亲节点小于等于其孩子节点。对于父亲节点和孩子节点两者之间关系(child=2*parent+1...
2018-02-25 21:03:28
377
原创 冒泡排序可以排序多个字符串。
原理和冒泡排序一样,不过字符串以及字符的比较大小要用到strcmp函数void BubbleString(char* str[],int len){ int i = 0,j = 0; for (i = 0; i < len; i++) { int flag = 0; for (j = i + 1; j < len; j+...
2018-02-23 19:58:38
465
原创 字符串面试题
1.数字转换为字符 2.字符串的翻转 3.字符串的压缩 4.字符串的删除 5.查询子串在母串中出现的次数 6.回文字符串的判断void IntToString(char arr[], int num)//数字转化字符{ int i = 0; while (1) { arr[i] = num % 10 + '0'; num ...
2018-02-23 17:57:02
528
原创 指针数组 数组指针 函数指针
【1】指针数组和数组指针 指针数组:望文生义就是一个数组成员为指针的数组。int *arr1[10];char *arr2[10];运算符*的优先级低于”[ ]”,所以说变量名先和哪个运算符结合就表示哪种类型,比如上面arr1先和”[ ]”结合,则表示它是一个数组,是一个数组成员为指针的数组,而数组指针同样,看结合的对象int(*p1)[10];char(*p2)...
2018-02-23 12:39:04
406
原创 链表常见习题
从尾到头打印单链表 删除一个无头单链表的非尾节点(不能遍历链表) 在无头单链表的一个节点前插入一个节点(不能遍历链表) 逆置/反转单链表 单链表排序(冒泡排序)合并两个有序链表,合并后依然有序 查找单链表的中间节点,要求只能遍历一次链表 查找单链表的倒数第k个节点,要求只能遍历一次链表 删除链表的倒数第K个结点【1】从尾到头打印单链表 采用了四种方法:栈的应用、顺序...
2018-02-09 19:45:50
341
原创 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
#include<stdio.h>int main(){ int a[32]={0}; int i=0,num=0,data; printf("please enter the number>"); scanf("%d",&num); for(i=0;i<32;i++) { a[i]=num%2;
2017-10-17 16:11:51
254
原创 求两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
#include<stdio.h>int main(){ int num1=0,num2=0; printf("please enter the number>"); scanf("%d%d",&num1,&num2); int i=0,count=0; for(;i<32;i++) { if(num1%2!=num2%2)
2017-10-17 16:05:00
419
计算机操作系统 带目录 汤小丹第三版
2018-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人