自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解虚继承

本篇博客主要对继承的对象模型以及虚拟继承进行一个整理和总结。单继承方式一:单级派生//单继承class A{public: int _a;};class B :public A{public: int _b;};int main(){ B b; b._a = 1; b._b = 2; return ...

2019-01-27 19:11:19 194 1

原创 视图的基本操作和用户管理

文章目录一、视图基本操作创建视图修改视图删除视图二、用户管理查看用户信息创建用户语法语句删除用户语法语句修改用户密码改自己密码root 用户更改其他用户密码三、权限授权回收权限一、视图基本操作创建视图create view 视图名 as select语句;//创建视图create view shitu as select ename,sal from emp where emp...

2019-01-23 16:00:05 333 1

原创 MySQL基本查询

文章目录表的基本操作一、插入基本语法1. 单行数据+全列插入2. 多行数据 + 指定列插入3. 插入否则更新4. 替换二、select基本语法1.全列查询2.指定列查询3. 查询字段为表达式4.为查询结果指定别名基本语法语句5.结果去重三、where条件四、结果排序基本语法语句筛选分页结果基本语法语句五、update基本语法语句六、delete基本语法语句七、聚合函数八、group by子句的使用...

2019-01-22 21:11:34 213

原创 数据类型与表的约束

基本数据类型的测试1.—tinyint类型//创建表t1,类型为tinyint//tinyint类型范围:有符号-128~127 无符号0~255create table t1(num tinyint);//测试tinyintinsert into t1 values(1);insert into t1 values(128);//将字段num类型改为无符号 alter...

2019-01-21 11:08:03 224

原创 MySQL基本操作

--MySQL基本//连接MySQLmysql -uroot -p//查看连接情况show processlist;--对于数据库的操作//创建数据库create database rocket;//创建数据库并指定字符集create database rocket charset=utf8;//创建数据库并指定字符集和校验规则create database db3...

2019-01-19 11:44:37 118

转载 tcp udp 的粘包 断包分析

转载自:https://blog.csdn.net/qq_40129743/article/details/78644292此篇分析来来自于一次面试经历,面试官问对于断包问题tcp跟udp分别的处理方式?然后我就在这里总结下粘包断包问题。一,从TCP与UDP的区别讲起网络数据经过路由器,如果数据很小,没有超过路由器的封包大小,就会直接直接经过路由器到达下一个路由器,一层一层最终到达目的...

2019-01-11 10:47:07 247

原创 栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution{ //思路:借助栈来实现 //(...

2019-01-08 19:31:58 62

原创 const_iterator 与 const类型的iterator

每一种容器都会定义自己的迭代器类型,这里以vector中的begin函数为例std::vector::beginiterator begin();//返回普通类型的迭代器const_iterator begin() const; //返回const_iterator类型的迭代器那么const_iterator 与 const类型的iterator有什么区别呢?#include...

2019-01-03 20:57:49 146 1

原创 深拷贝与浅拷贝

深拷贝的实现:方式一:#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;#include<stdlib.h>#include<assert.h>//深拷贝class String{public: //正确写法一: /*String(co...

2019-01-02 21:05:51 78

原创 设计一个类,只能在栈上创建对象

设计一个类,只能在栈上创建对象//思考的几个要点://(1)只能在栈,说明不能在堆上创建,考虑堆上创建对象的两种方法-->new和定位new表达式,原理-->先调用operator new开空间,然后执行构造函数//所以屏蔽掉operator new(即放成私有)这样就排斥了直接new和定位new表达式//注意:上面的方法只能排斥掉在堆上创建,但是在全局区仍然可以//(2)防...

2018-12-28 21:46:54 95 1

原创 设计一个类,只能在堆上创建对象

设计一个类:只能在堆上创建对象//思路:说明不能在栈上创建对象,考虑到栈上创建对象会发生哪些事://(1)构造函数(2)拷贝构造 //所以先屏蔽掉构造函数,即设为私有。存在问题:在堆上创建对象也会调用构造函数,设为私有对其有影响//解决:提供成员函数接口,在成员函数中创建堆对象。存在问题:成员函数需要对象来调用,现在无法创建对象//解决办法:设为静态成员函数,这样就不依赖于对象调用/...

2018-12-28 21:42:30 101 2

原创 统计一个类中,创建出了多少个类对象

方法一:全局变量//方法一:全局变量int _count = 0;class A{public: A() { _count ++; } A(A&a) { _count++; } ~A() { _count--; } void GetCount() { cout << _count <&...

2018-12-22 15:27:02 2238

原创 关于“编译器会生成默认的构造函数”之剖析

开篇先列一下本篇文章要解释的几个知识点背景:我们知道,如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数。本节剖析:(1)如果没有显式定义,编译器真的会生成默认构造函数吗?(2)在什么场景下,编译器会生成默认构造函数,什么场景下不会?以一个简单的日期类来探索今天的主题例1:class Date{public:private: int...

2018-12-20 18:14:21 641

转载 linux写时复制原理

本文转载自 Linux内核那些事来源:xusong.lie链接:http://mp.weixin.qq.com/s/h4xp7gcupExHUUCJ6PA6VA当调用fork()系统调用创建一个子进程时,Linux并不会为子进程创建新的物理内存空间,而是公用父进程的物理内存。这是因为Linux的内核开发者觉得,调用者调用fork()系统调用后会立刻调用exec()系统调用执行新的程序...

2018-12-18 20:24:31 735 2

原创 xshell教育版下载链接及步骤

链接:http://www.netsarang.com/download/free_license.html教程:参考自https://blog.csdn.net/weixin_40928253/article/details/80621724

2018-12-15 17:48:34 6980

原创 this指针

背景首先来看一下在C语言中,我们定义一个结构体,如何通过函数实现对结构体成员的赋值?答案当然是通过传指针的方式;在实参中传入变量的地址,就可以达到在函数中修改变量各个成员内容的效果。方式如下:#include<stdio.h>#include<stdlib.h>#include<string.h>struct Student{ cha...

2018-12-14 17:04:46 68

原创 C语言和C++中的函数命名规则

c语言函数命名规则例1:#include<stdio.h>#include<stdlib.h>int Add(int left, int right);//函数声明int main(){ Add(1, 2);//编译器在找的时候修饰为_Add}可以看到,编译器在找函数时并不是直接找Add的,而是找的是_Adddouble Add(double...

2018-12-12 20:45:29 1892 1

原创 signal信号宏定义查看

 在下面的目录:[lk@localhost linux]$ vim /usr/include/bits/signum.h 

2018-12-11 18:57:07 638

原创 linux常用基础命令总结

对目录进行操作浏览ls语法:ls [选项] [目录或文件]功能:对于目录–>列出当前目录下所有的文件信息对于文件–>列出文件名以及其他信息选项含义-a列出目录下的所有文件,包括以.开头的隐含文件-l列出文件详细信息(权限、生成时间等)

2018-12-09 16:36:17 103

原创 内核中查看task_struct结构体教程

在linux下,路径:/usr/src/kernels/3.10.0-327.el7.x86_64(这个是自己kernels目录下的)/include/linux/sched.h用管道命令查找:[lk@localhost linux]$ grep -n task_struct sched.h 结果显示出来很多,不好找直接打开sched.h文件[lk@localhost...

2018-12-03 17:09:26 1079

原创 堆的基本操作

Heap.h#ifndef __Heap_H_#define __Heap_H_//定义一个函数指针//typedef int (*PF)(HDataType left, HDataType right);typedef int HDataType;typedef struct Heap{ HDataType* _array; int _capacity;//容量 i...

2018-11-29 20:50:53 60

原创 在一组数字中找出最大和第二大的两个数

题目:在一组数字中找出最大和第二大的两个数要求:只能遍历一次数组思路:定义两个变量max和second,#include<stdio.h>#include<stdlib.h>void Find_Two_MaxNum(int a[], int size, int*max,int *second){ for (int i = 0; i < size...

2018-11-28 16:50:59 1695

原创 20. 有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false...

2018-11-23 23:21:19 49

原创

Stack.h#pragma once#define N 3typedef int SDataType;//动态栈typedef struct Stack{ SDataType*_array; int _capacity;//有效元素的最大个数 int _top;//栈顶}Stack;void StackInit(Stack*ps);//栈的初始化void _Che...

2018-11-23 22:49:58 39

原创 203. 移除链表元素

删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ...

2018-11-23 21:04:51 47

原创 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...

2018-11-23 20:13:29 106

原创 带头结点的双向循环链表

DList.h#ifndef __DList_H_#define __DList_H_typedef int DataType;typedef struct DListNode{ DataType _data; struct DListNode* _pPre; struct DListNode* _pNext;}DListNode;DListNode*BuyDLis...

2018-11-22 16:01:02 98

原创 206. 反转链表

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?代码:/** * Definition for singly-linked list. * struct ListNode { *...

2018-11-16 23:37:55 66

原创 指针相关知识点总结(二)

一、字符指针重点:区别字符指针和字符数组的本质#include<stdio.h>#include<stdlib.h>int main(){ char str1[] = "hello"; char str2[] = "hello"; char*p1 = "hello"; char*p2 = "hello"; printf("str

2018-11-16 22:58:22 174

原创 单链表

SList.h#ifndef __SLIST_H__#define __SLIST_H__typedef int SLDataType;typedef struct SListNode{ SLDataType _data; struct SListNode*_pNext;}SListNode;void SListInit(SListNode*pList);//初始化v...

2018-11-16 20:15:27 61

原创 链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。分析:整体思路:“快慢指针”法设立快慢两个指针,先让快指针走k步,到达位置后,快慢指针再同步移动;当快指针走到NULL时,慢指针所在的位置即为倒数第k个节点主要注意的点:k>节点个数时,最开始fast指针前进k步while循环内一定要判断,fast已经走到NULL时,没必要继续走下去代码:/*struct Li...

2018-11-15 15:49:56 64 1

原创 动态顺序表

我们对静态顺序表可能比较熟悉,它的定义方式是struct SeqList{ int arr[100]; int _size;//当前存放数据的个数};主要思想就是利用数组可以一次性开辟一整块空间,存放我们想要的数据。从这个结构体的定义,我们可以获得如下信息:开辟的空间大小为100,(即可以存放100个整型数据),_size记录了当前数组中有效元素的个数,为什么要有这一...

2018-11-12 20:10:40 86

原创 模拟实现memcpy函数

  代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<assert.h>void*Memcpy(void*dest, const void*src, size_t count){ assert(dest); assert(sr...

2018-11-11 00:31:31 87

原创 模拟实现strchr函数

代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>char*Strchr(const char*str, int ch){ assert(str); char*pst...

2018-11-11 00:26:11 60

原创 模拟实现memmove函数

代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<assert.h>void*Memmove(void*dest, const void*src, int num){ assert(dest); assert(src); char*...

2018-11-10 23:19:46 41

原创 动态顺序表

SeqList.h#pragma oncetypedef int DataType;typedef struct SeqList{ DataType*_pData; int _capacity;//容量 int _size;//有效元素的个数}SeqList;void SeqListInit(SeqList*pSeq,int capacity);//初始化顺序表void...

2018-11-10 19:37:06 78

原创 模拟实现strcpy

代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<assert.h>char*Strcpy(char*dest, const char*src){ assert(src); assert(dest); char*start = de...

2018-11-09 00:08:39 70

原创 模拟实现strcat函数

 代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>char*Strcat(char*dest, const char*src){ assert(dest); ...

2018-11-08 23:54:15 56

原创 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以喝多少汽水

题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,  给20元,可以喝多少汽水代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int main(){ int money = 0; scanf("%d", &money); int empty = m...

2018-11-08 23:52:50 194

原创 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现

题目:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现思路一:暴力求解。每次选取一个元素,再遍历数组,判断是否有与其相同的元素,如果有则跳出循环;每一轮遍历都结束后都可以根据j与size的大小判断出只出现一次的数字代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#incl...

2018-11-08 23:43:51 342

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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