自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (1)
  • 收藏
  • 关注

原创 两个区间映射关系详解/c++

1、首先给一个两个区间映射的公式:2、最近做项目中频繁用到区间转换,在网上找了许多例子都只有公式介绍,没有直接可用的代码,所以自己写一个给大家参考3、直接给实现代码:struct Interval{ Interval(): min(0.0), max(1.0){} Interval(const double &_min, const double &amp...

2019-10-31 17:16:02 2006

原创 QSqlDatabase: QMYSQL driver not loaded

最近在用QT链接mysql数据库,在链接的时候一直出现QSqlDatabase: QMYSQL driver not loaded,在网上找了好多教程,无赖都没有解决我的问题,首先说一下这个解决的是QT5.7以上的版本,因为它自带mysql数据库,但需要配置QODBC(设置方法:http://jingyan.baidu.com/article/8065f87f38b31423312498e4.

2017-05-12 23:47:09 560

原创 将字符串中的所有空格去掉,要求时间复杂度O(N)

//题目:将字符串中的所有空格去掉,要求时间复杂度O(N)//空间复杂度O(1)//感想:最开始我以为这个题目很简单,但面试的时候由于紧张,没有写得特别优化,所以被小米给刷了,贼伤心的//条件的控制很重要,我当时就是因为紧张,条件没有控制好,现在想想真是很尴尬,//面试出来后我都有一种想法我他妈就不适合当程序员#include using namespace std;#include

2016-09-30 17:21:05 2839

原创 链表基本操作详解

注释:这段时间在参加校招,问了很多链表的问题,虽然都可以完全不错的写出来,但却花了不少时间,一怒之下我就把链表的基本所有操作都重新编写一遍备注:适合于才学链表和有一些链表操作的经验的同学看,代码全部都可以通过,可以放心使用头文件:list.h#include #include using namespace std;#include struct Node{ int val

2016-09-15 10:03:06 2062

转载 智能指针详解

重点:学习智能指针,看这偏博客就够了,讲得很详细,特别用心去写的博客原文出自:http://www.cnblogs.com/Lynn-Zhang/p/5699983.html博客园首页新随笔管理随笔 - 48  文章 - 2  评论 - 5智能指针 auto_ptr、scoped_ptr、shared_pt

2016-09-02 11:27:21 4576

原创 求数组(元素可为正数、负数、0)的最大子序列和。

int max_sum(int *arr,int len){ assert(arr); assert(len > 0); int sum=0; int key=-INT_MAX; for(int i=0; i<len; ++i) { if(sum <= 0) sum=arr[i]; else sum+=arr[i]; if(sum >= key)

2016-08-14 12:56:59 1504

原创 快速排序

int partion(int *arr,int low,int heigh){ int key=arr[low]; while(low < heigh) { while(low =key) --heigh; arr[low]=arr[heigh]; while(low < heigh && arr[low] <= key) ++low; arr[heigh]=

2016-08-14 12:55:29 585

原创 编写一个memmove函数,实现内存拷贝

void* my_memmove(void *des,const void *src,int size){ char *Des=(char*)des; char *Src=(char*)src; assert(Des && Src); int len=strlen(Src); assert(size >0 && size <len); if(Des Src+len) { wh

2016-08-14 12:53:34 1079

原创 C/c++常见面试题

【C语言部分】一、概念问答题:1、static在C和C++里各代表什么含义 (语言)解析:1、static主要修饰变量、函数、成员变量和成员函数2、修饰变量表明变量的生存周期,生存周期随进程,进程结束才结束3、修饰函数,表明函数的作用域只限于本文件使用4、修饰成员变量和成员函数只针对于C++才有,也表示生存周期和作用域5、static修饰的变量默认被初始

2016-08-13 23:04:09 1707

原创 学生成绩管理系统

解析:最近帮朋友做的一个相当于课程设计的学生成绩管理系统,她们要求是用c语言写,对于一个用惯c++的孩子来说真是感觉写起来的各种限制真心感觉到无语,不说了直接上代码#include "student.h"void main(){ char ch='0'; int index=0; char id[ID_SIZE]; student students; student ph

2016-07-05 00:30:53 4756 6

原创 打印1到最大的n位数

解析:打印1到最大的n位数,首先因为n的大小没有确定,所以就得分两种情况考虑,假如n在整数范围内,当n小于INT_MAX时,直接用处理整数的方式来计算,否则就得将n转化成字符串来处理,具体整数处理,请看代码//打印1到最大的n位数bool print_number(char *str,int n){ int top=0; //从个位开始算起 for(int i=n-1; i>=0;

2016-06-29 01:49:22 1877

原创 进程和线程的区别

操作系统面试题1、进程和线程的区别?解析:(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元          (2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。          (3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的

2016-06-27 20:53:51 86344 7

原创 Linux 进程间通信(IPC)

Linux 进程间通信(IPC)说明:首先要声明一点,我接下来要写的都针对在面试的时候被问的一些详解1、为什么要有进程间通信?解析:因为进程间通信主要是强调在不同的进程间交换数据,而数据的交换必须依靠内核来实现,任何一个进程的全局变量在另一个进程中都是看不见的,所以内核开辟了一块缓冲区,进程A将数据放入内核,进程B从内核将数据取走,就实现了进程间通信2、进程间通信有几种通信

2016-06-27 20:49:31 2831

原创 非递归实现二叉搜索树转化成双链表

题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。      10  / \ 6 14 / \ / \4 8 12 16     转换成双向链表4=6=8=10=12=14=16。分析:代码难理解的地方我都已经注释了,为什么要写非递归的实现,是因为我在看剑指offer的时候,上面是递归实

2016-06-24 15:32:48 1621 1

原创 二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是一颗二叉搜索树的后续遍历的结果,如果是返回true,否则返回false分析:由于二叉搜索树的特性,左子树一定小于根节点,右子树一定大于根节点,所以在一颗二叉搜索树中不会出现两个相同的节点bool IsBST(int arr[],int len){ assert(arr !=NULL); if(len < 0) return fals

2016-06-24 10:04:36 1340 1

原创 输入两个整数m和n,计算m需要改变多少位才能得到n

题目:输入两个整数m和n,计算m需要改变多少位才能得到n?解析:        这个题我最开始是没有思路的,想了很久才有点思路,思路的来源是把他们转化成二进制后才有的       例如:(5)的二进制:0101  (3)的二进制:0011       如果要把5变成3的话,需要改变:2次,因为第一位0和最后一位1都相同        所以不需要改变,做法,先将两个数

2016-06-22 21:36:55 3488

原创 旋转数组的最小值

题目:把一个数组最开的若干个元素搬到数组的末尾,我们称之为数组的旋转,输入一个递增排序的的数组的一个旋转,输出旋转数组的最小元素,例如:数组{3,4,5,1,2}旋转后为{1,2,3,4,5},该数组的最小值为:1解析:        这是最近在看剑指offer,然后就看到这道题了,然后上面的解法有两种:1、也是最容易想到的一种,将数组按升序排序一下,然后数组的第一个数就是最小值,

2016-06-22 21:03:55 1719

原创 只创建在堆上生成的变量详解

解析:今天在看Effective C++时,看到了抽象函数详解那块,于是很自然的就想到了以前看过的一道题:创建只在堆上生成的变量。这题换句话说:只能用指针创建变量,即Type *value=get_point();类似于这样的问题,有两种方法可以完成这个问题:1、第一种,也是最能先想到的一种,将构造函数放在private(私有)里,这样就无法在栈上定义变量了,这种很简单,基本学过class

2016-06-20 22:36:55 2715

原创 打印1到最大的n位数

解析://打印1到最大的n位数//最开始是看剑指offer实现的,但看着有点晕,于是自己经常调试后总结出来的//所以如果看不怎么懂的时候将代码写出来然后调试,调试后就知道它是怎么运行的//注释的部分是剑指offer上实现的,bool increment(char *str){ //bool is_over_flow=false; int tmp=0; //int nTake

2016-06-19 01:29:53 557

原创 连续子数组的最大和

1、分析://之前在剑指offer上看到这个问题,感觉它实现的代码让我有一些难理解,所以看了它上面的思路自己实现了一下,个人感觉比他写的代码好理解点,所以就分享哈,如果有不正确的,欢迎提出意见 2 #include 3 #include 4 using namespace std; 5 6 //连续子数组中最大和 7 //思想:从第一个第一个数开始往

2016-06-17 22:05:01 1803 1

原创 两个链表是否相交详解

//两个链表是否相交?//常规解法,但时间复杂度为O(N1*N2)bool intersct(node *des,node *src){ if(des==NULL || src==NULL) return false; node *cur_des=des; while(cur_des !=NULL) { node *cur_src=src; while(cur_src

2016-06-07 19:55:00 720

原创 链表面试题详解

struct node{ int value; struct node *next; node(int key=0):value(key){}};//无头的单链表void init(node *&head){ if(NULL==head) head=NULL;}//两种情况,head==NULL或者没有找到都返回NULL//否则返回找到的节点node* find(no

2016-06-07 19:07:27 486

原创 二分查找详解

int search(int *arr,int size,int key){ assert(arr !=NULL); assert(size>0); int high=size-1; int low=0; while(low <=high) { int mod=low+(high-low)/2; if(arr[mod]==key) return mod; if(ke

2016-06-07 19:02:20 520

原创 双链表插入 删除详解

节点结构:struct both_node{ int key; struct both_node *prev; struct both_node *next; both_node(int k) :key(k),prev(NULL),next(NULL) {}};不带头节点的双链表实现插入 删除,双链表//插入void insert_both(both_no

2016-06-07 18:09:49 4461

原创 memcpy优化 实现高效

1:函数原型void * memcpy ( void * des, const void * src, size_t size );它是实现对内存的拷贝,所以还是很高效的,我这里没有考虑字符重叠的情况,只是实现它的高效性,废话不多说直接上代码1 2 #include 3 #include 4 using namespace std; 5 6 void* Me

2016-06-04 18:33:36 10538 2

原创 无重复字符的最长子串(并输出相应的最长子串)

/* * 给定一个字符串,请你找出其中不含有重复字符串的最长子串的长度, * 新增一个附加条件:并输出相应的最长子串字符*/#include <unordered_set>void testMaxChar(){ //"abcabcbb" //char *src="abcabcbb"; char *src="abcabcbbxyzwertoziabdcw"; // 官方答案 { std::string s="abcabcbbx.

2021-05-27 22:59:22 740

原创 两数之和

/* * 两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和目标值target相等的两个整数,并返回它们的下标*/struct NodeIndex{ NodeIndex(){} NodeIndex(int i, int v): index(i), value(v){} int index = 0; int value = 0;};void ge...

2021-05-26 21:41:41 140

原创 两数相加

/* * 两数相加 * 给你两个非空链表,表示两个非负整数,它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字 * 请你将两个数字相加,并以相同的形式返回一个表示和的链表 * 你可以假设除了数字0之外,这两个数都不会以0开头。*/#include <list>void TowNumSum(){// int data1 = 1378;// int data2 = 178908;...

2021-05-26 21:39:21 118

原创 二叉搜索树的后序变量序列

题目:输入一个整数数组,判断该数组是不是一颗二叉搜索树的后续遍历的结果分析://输入一个整数数组,判断该数组是不是一颗二叉搜索树的后续遍历的结果//如果是返回true,否则返回false//分析:由于二叉搜索树的特性,左子树一定小于根节点,右子树一定大于根节点//所以在一颗二叉搜索树中不会出现两个相同的节点,bool IsBST(int arr[],in

2017-05-12 23:50:06 320

原创 数组中出现次数超过一半的数

分析:6//找出在一个数组中出现次数超过一半的数,可以这样理解,找一个数的中位数  7 //基于这样思想最直观的做法是排序后找中间的数既可,但最好时间复杂度也得O(NlogN)  8 //所以用一种简单的办法来解决  9 //定义两个变量,从第一个数开始找,并记录第一个数为result为需要找的数,它出现的次数初始化为:times=1 10 //以后只要找到和result相

2016-06-17 21:16:06 3640

转载 红黑树详解

转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7740956一、红黑树概述     红黑树和我们以前学过的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。不过自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更

2016-06-07 20:27:15 436

原创 哈希表C++实现--hash_table

1、hash_table.h#include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 struct table_node 10 { 11 int _key; 12 string _value; 13 struct tabl

2016-05-31 10:57:49 5559 2

原创 二叉搜索树C++实现

1、二叉搜索树Bin_Search_tree.h1 2 #include 3 using namespace std; 4 5 template 6 struct BSTNode 7 { 8 T data; 9 BSTNode *leftchild,*rightchild; 10 BSTNode(const T d=T()) 1

2016-05-31 10:54:08 427

原创 AVL树详解

AVL树C++代码实现1、源文件tree.h1 2 #include 3 using namespace std; 4 5 template 6 struct TreeNode 7 { 8 T data; 9 T df; 10 struct TreeNode *leftchild,*rightchild; 11 Tr

2016-05-31 10:50:34 383

原创 linux ATM自定取款机简单实现

首先是在linux地下实现的,创建了四个文件,主要实现流程:注册-登陆-存款-取款-转账-更改密码-查询个人信息-显示全部账户-退出系统废话不多说,直接看代码:Blank.h#include #include #include #include #include #include #include #include using namespace std;#

2016-05-08 10:23:31 3187 1

原创 atoi函数

实现了一个简单的atoi函数,包括对正负的确认,整数大小,非法输入反反复复1 2 #include 3 #include 4 #in

2016-04-26 16:44:26 971

原创 笔试题:输入0123456789对应输出“一二三四五六七八九”

题目描述:当输入一个数的时候:即输入:1,对应输出:一;输入:2,对应输出:二当输入两个数的时候:即输入:12;输出:一十二;输入:10,输出:一十当输入三位数的时候:即输入:123,输出:一百二十三;输入:100,输出:一百等等这是完美世界的一道在线笔试题,当时时间不够,没能完全做完,想想真是遗憾,话不多说了直接上代码 2 #include 3 #include 4 #i

2016-04-26 13:03:15 6462

原创 mysql事务处理

一个事务是一个连续的一组数据库操作1、其实我理解的事务处理就相当于锁,它主要的目的是:当多个用户同时访问同一张表或者同一个数据的时候,对数据的更改需要让它实现原子操作(即保证数据的更新从一个状态改变为另一个状态保证一致性),2、事务处理有4个特性:原子性、一致性、隔离性、持久性 (简称:ACID)原子性:数据的更改一次性做完,即要么做就做完,要么就不做一致性:事务完成时,必须所

2016-04-07 21:49:52 759

原创 深入理解进程间通信(IPC)

1、进程间通信主要有四种形式:管道(pipe)、消息队列、信号量、共享内存。2、首先说一下最基本的管道,管道分:命名管道和匿名管道;3、匿名管道主要用在具有亲缘关系的进程之间通信,调用pipe函数创建匿名管道,一端用于写另一端用于读,当进程之间在进行读写的时候会发生阻塞,即当写端没有再向管道里写数据时,读端读完最后一个数据后就会阻塞,而且匿名管道是半双工的,意思是在同一时刻只能进行单项通信

2016-04-06 19:22:48 925

原创 腾讯在线笔试题-把字符串“I am from china.”反转成为“I am from china.”,以及把整个字符串逆序。

注:首先得说一下腾讯2016年在线笔试题的最后一个大题出题的人大意出错了,他举的例子是:字符串“I am from china.”反转成为“I am from china.”  但是他说的是表达符号又不反转,如果表达符号不转换的话,那么他举的例子就是错的,所以当时做这题的时候就真是一万个草泥马(不好意思说脏话)没忍住,下面就是给出字符串也转换的例子 1#include 2 #inclu

2016-04-05 19:17:14 1487

C语言深度剖析

http://u.download.csdn.net/upload?ref=toolbar

2014-12-30

空空如也

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

TA关注的人

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