自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (6)
  • 收藏
  • 关注

原创 c++关键字explicit

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型...

2018-10-10 16:38:06 261

原创 struct与class的区别(含struct空类型的内存分析)

1.struct定义一个结构体成员变量和成员函数的默认访问权限为public。class定义一个结构体成员变量和成员函数的默认访问权限为private。struct更适合看成是一个数据结构的实现体。class更适合看成是一个对象的实现体。class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。在cpp中对两者的初始化不...

2018-10-09 16:08:22 289

原创 通过函数名调用函数和通过函数指针调用函数有什么区别?

1.通过函数名调用函数和通过函数指针调用函数有什么区别呢?首先函数名、函数指针都表示代码段的起始地址。1)调用函数的时候必须指定函数名,可是当有时候不确定具体调用哪个函数,当某些事件发生后才确定,所以事先就定义一个函数指针(比如回调函数)2)函数的调用有函数栈桢的开辟。3)函数指针不会处理成内联函数2.为什么调用函数指针没有直接调用函数效率高?1)会产生野指针(这是安全,不...

2018-10-09 14:41:36 2465

原创 vector与list区别

vector 表示一段连续的内存区域,每个元素被顺序存储在这段内存中,对vector 的随机访问,比如先访问元素5 然后访问15 然后再访问7 等等效率很高,因为每次访问离vector起始处的位移都是固定的,但是在任意位置而不是在vector 末尾插入元素则效率很低,因为它需要把待插入元素右边的每个元素都拷贝一遍,类似地删除任意一个而不是vector的最后一个元素效率同样很低,因为待删除元素右边的...

2018-10-08 10:44:03 1117

原创 自己用qt制作的一个具有查询功能的界面

工具:QT sqlserver2008步骤:1.使用QT连接sqlserver数据库,并插入一些数据(main.cpp)2.在myqtsql.h中添加我所需要的控件3.实现qt的界面,添加查询功能,并实现模糊查询。主要代码:myqtsql.h  myqtsql.cpp main.cpp界面如下:1.myqtsql.h#ifndef MYQTSQL_H#de...

2018-07-31 11:49:39 4722 1

原创 github如何更改别人的代码并上传

1.首先在github上找到你需要的代码,然后fork下来到你的github,点击你的项目,然后点击绿色的按钮Clone or download ,记录项目的地址 ,例如:https://github.com/li-lili/qingstor-sdk-c-and-cpp-1.git。2.打开终端,使用git clone +你的项目地址 例如:git clone https://github.com

2018-01-18 20:37:38 3511

原创 输入两个链表,找出它们的第一个公共结点。

题目描述输入两个链表,找出它们的第一个公共结点。思路:首先两个单链表有公共节点时只可能为“Y”结构,不可能为“X”结构,因为一个链表结构只能有一个next指针,而不可能指向node节点。让长的链表先走,然后两个一起走,直到相等。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), n

2018-01-18 15:13:37 443

原创 输入一个链表,输出该链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。思路:两个指针p 和q,q先走k个位置,然后p q一起走,当q到达末尾节点时,p为倒数第k个节点/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {publ

2018-01-18 14:35:19 196

原创 从尾到头打印链表

思路:是用栈结构,利用先进后出的特性。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {publ

2018-01-13 14:12:05 138

原创 STL源码剖析学习笔记(一)

本系列文章参考《stl源码剖析》,以自己的观点解释stl,当作自己的学习笔记,如有错误请指出,谢谢大家。本系列文章适用于对stl有了解但是还未参透者,先从使用的角度,逐渐渗透到其原理,流程为先介绍各种组件及其联系,然后介绍容器(vector,list...)的使用,并剖析其主要实现原理,然后介绍迭代器,空间配置器(内存管理),及其他。首先介绍stl六大组件1.容器(co

2017-12-28 15:28:11 283

原创 单链表反转

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead == NULL

2017-12-26 18:15:39 194

原创 堆排序

堆排序就是利用堆进行排序的方法,基本思想是,将代排序列构造成一个大根堆,此时整个序列的最大值就是堆顶的根节点。将它与堆数组的末尾元素交换,此时末尾元素就是最大值,移除末尾元素,然后将剩余n-1个元素重新构造成一个大根堆,堆顶元素为次大元素,再次与末尾元素交换,再移除,如此反复进行,便得到一个有序序列。(大根堆为每一个父节点都大于两个子节点的堆)上面思想的实现还要解决两个问题:1

2017-12-24 12:42:48 307

原创 面试之链表

1.链表中倒数第k个结点两个指针,一个先走k-1步,然后两个一起走,当先走的那个到达尾时,后走的位置为倒数第k个。2.反转链表3.两个链表第一个公共结点先遍历两个链表得到长度,计算出差值,长的先走若干步,然后两个一起走,直到两个遍历到的结点相同。4.检测单链表是否有环,以及怎么找到环切点快慢指针,一个从头,一个从相遇点,找到交点。5.删除链表中重复的结点

2017-09-30 22:37:59 199

原创 单链表是否有环以及环的切点

一个链表中包含环,请找出该链表的环的入口结点。判断有环:定义两个指针low,fast,low一次走一步,fast一次走两步,有环则两点会重合。   ListNode* circle(ListNode* pHead)    {        if(pHead == NULL)            return NULL;        ListNode* low = pHe

2017-09-29 22:43:19 193

原创 面经

富途一面:strcpy的实现进程线程io复用预处理 编译 汇编 链接过程动态链接库 静态链接库多态数组中和为s的数对(一组)(O(n))两个栈实现队列close_wait发生在什么时候time_wait的作用硬币拼凑问题腾讯一面:链表翻转场景题(小根堆)io复用红黑树的性质进程线程涂鸦一面:指针和引用以及应

2017-09-29 22:41:12 199

原创 10进制的进制转换问题

给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数 输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。输出描述:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)输入例子1:7 2输出例子1:111#include #inclu

2017-08-26 14:35:48 581

原创 tcp与udp的区别

摘抄>传输层主要有两个协议:tcp协议和udp协议。tcp协议的主要特点:面向连接的流式可靠地服务。udp协议的主要特点:无连接不可靠的数据报服务。使用tcp协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须位该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。tcp连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换后,通信双方都必须断开

2017-07-23 15:38:13 275

原创 gcc与g++的区别

GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。gcc是GCC中的GUN C Compiler(C 编译器)g++是GCC中的GUN C++ Compiler(C++编译器)一个有趣的事实就是,就本质而言,gcc和g++并不是编译器,也不是编译器的集合,

2017-07-17 13:53:21 254

原创 进程虚拟地址空间

我们知道每个进程运行起来后都有自己独立的虚拟地址空间,这个虚拟地址空间的大小由计算机的硬件平台决定,具体的说是由cpu的位数决定的。硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,比如32位的硬件平台决定了虚拟空间的地址为0~2的32次方-1,即0x00000000~0xFFFFFFFF,也就是我们常说的4G虚拟空间的大小,而64位的硬件平台具有64位寻址能力,它的虚拟地址空间达到了2的6

2017-07-15 18:09:38 1242

Python基础教程 中文第二版

Python基础教程 中文第二版,附带目录,文字清晰,欢迎下载。。

2018-10-11

程序员面试宝典 第三版

程序员面试宝典压缩版,笔试面试必备,欢迎下载。

2018-10-11

STL源码剖析简体中文完整版(清晰扫描带目录).rar

STL源码剖析简体中文完整版,此文件为压缩文件,解压后可以完美阅读,欢迎下载。

2018-10-11

高质量c++编程指南

笔试面试必备的书,文字清晰,内容丰富,帮你提升自己的编程技术。

2018-10-11

高质量c++c编程指南

压缩版《高质量c++c编程指南》,文字清晰,解压后为pdf格式,欢迎下载。

2018-10-10

空空如也

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

TA关注的人

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