- 博客(48)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
转载 stl dequel实现原理
顺序容器deque deque 是一种双向开口的连续线性空间,所谓双向开口,就是可以在头尾两端分别做元素的插入和删除;与vector 相比,vector可以在头尾两端进行操作,但是其头部的操作效率奇差,无法接受。 deque是分段连续线性空间,随时可以增加一段新的空间;与vector相比,vector当内存不够时,需重新分配、复制数据、释放原始空间。 deque的迭代器需要处理段之间的过渡,相比于vect...
2020-09-14 08:09:07 338
转载 MYSQL事务隔离级别实现方式
推荐阅读:https://blog.csdn.net/m0_46995061/article/details/106340227前言如果数据库中的事务都是串行执行的,这种方式可以保障事务的执行不会出现异常和错误,但带来的问题是串行执行会带来性能瓶颈;而事务并发执行,如果不加以控制则会引发诸多问题,包括死锁、更新丢失等等。这就需要我们...
2020-09-09 08:53:23 364
原创 静态库与动态库
程序库:主要提供功能重用,使得程序模块化,加快程序的编译,方便程序进行升级。程序库分为静态库与动态库。静态库:在可执行程序运行前就加入到执行码中,成为可执行程序的一部分(一般以lib*.a 作为库名后缀)。a.应用场景:对空间要求较低,对时间要求较高程序中。b. 制作: 1.使用gcc -c 生成.o 文件 2.使用 ar 工具制作静态库, 如:ar rcs libexapmple.a a.o b.oc. 使用(编译静态库到可执行文件中): gcc he...
2020-09-02 23:47:45 147
原创 编译步骤
编译4步骤:预处理,编译(涉及到语法检测,相比其它步骤,消耗时间和系统资源最多),汇编,链接预处理:(gcc -E hello.c -o hello.i) 展开宏,头文件,替换条件编译;删除注释,空行,空白部分编译:(gcc -S hello.i-o hello.s)进行词法分析、语法分析、语义分析,输出汇编代码文件汇编:(gcc -c hello.s -o hello.o)将汇编指令翻译成机器指令链接:(gcc hello.o -o hello)数据段合并(数据段的合并是将只读的代码区和.
2020-08-31 23:51:58 456
原创 construct-binary-tree-from-preorder-and-inorder-traversal
/*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/cla...
2019-10-17 22:52:04 102
原创 construct-binary-tree-from-inorder-and-postorder-traversal
/*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/cla...
2019-10-17 22:47:13 109
原创 Populating Next Right Pointers in Each Node
处理时每层节点都是个链表。将该链表的左右子节点连接起来。【尝试用递归,但出现超时】/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(i...
2019-10-13 00:47:30 93
原创 恢复二叉搜索树
题目描述二叉搜索树(BST)中的两个节点被错误地交换了,请在不改变树的结构的情况下恢复这棵树。思路:二叉树两个节点被交换,存在两种情况。case 1 是父节点和子节点被交换。case 2是不相邻的两个节点被交换。利用二叉树搜索树中序遍历有序性,如果是case 1, 则发生逆序的两个节点为需要交换值的两个节点;如果是case 2,则存在两处发生逆序的地方, 发生逆序第一处的值被...
2019-10-06 00:24:14 245
原创 通过循环遍历二叉树
#include<iostream>#include<stack>struct Node{ int data; Node* left; Node* right; Node() : data(0), left(NULL), right(NULL) {};};Node* buildHeap(int * a, int aSize)...
2019-08-31 21:26:30 578
原创 两个有序数组中找到第k大的元素
1. 求第k大的数,可以定义两个游标(i,j)分别指向两个有序数组(a[], b[]),a[i] > b[j] 则j++,result= b[j];否则i++。移动一次则count++,当count等于k时,返回result。代码如下:#include <iostream>int getRankData(int a[], int aSize, int b[], i...
2019-08-31 17:19:45 2740
原创 有一组不同高度的台阶,用一个整数数组表示,数组中每个数是台阶的高度,雨后(雨水足够多)台阶之间的水坑会积水多少呢?
如数组int height[] = {0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1};对应积水如下图:图转自:https://blog.csdn.net/Thomas0713/article/details/83051990如果要形成积水,则积水两旁的台阶上高于积水区的。而积水体积计算则是最低台阶与两边台阶最低的差。代码:#include <...
2019-08-28 22:10:34 1113
原创 链表反转
#include<iostream>struct Node{ int data; Node* next; Node() : data(0), next(NULL) {}};//反转逻辑Node* reverse(Node* p){ Node* last = NULL; while (p) { Node*...
2019-08-26 23:11:32 82
原创 两个链表相加求和
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,返回和。若链表存储是从高位开始存储,则将链表先反转再相加。反转链表实现#include<iostream>#include<sstream>#include<vector>struct Node{...
2019-08-26 00:24:57 1565
转载 云风协程库保存和恢复协程运行栈原理讲解
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...
2019-08-23 17:09:06 252
原创 Python 字符处处理
需要写个脚本,从sql文件中提取uid,并拼成key,删除redis中的这个key。sql文件形式:updatetable_1setcolumn_1=9459885 whereuid=133333333updatetable_1setcolumn_1=9459886 whereuid=133333334redisList = ['127.0.0.1...
2019-04-12 14:52:20 153
转载 maven依赖顺序导致进程挂掉总结
java程序添加thrift 调用后,每次运行到要发http请求时,程序总是挂掉。由于发http请求这段代码没有改动,百思不得其解之时,调整了pom上关于thrift的包和httpclient包的依赖。再次测试ok了。在网上搜索maven上jar包依赖顺序出错会导致什么问题, 下面是在文章中看到的,以作记录:转自:https://www.cnblogs.com/shawWey/p/7417...
2018-11-15 21:47:03 565
转载 Redis系列-存储篇sorted set主要操作函数小结
Redis支持有序集合,即sorted set。sorted set在set的基础上,增加了排序属性,是set的升级版。这里简要谈谈sorted set的常用函数:1)inserta) zadd语法:zadd key score member [[score member] [score member] …]解释:增加一个或多个member【根据score排序】到有序集key中,如果mem
2016-12-22 18:05:45 1124 1
原创 判断链表是否有环,若有环,寻找环节点
判断方法,创建两个指针p和q指针,p指针每次向前前进一个,q每次向前前进两个。如果存在p和q一起指向同一个结点,则证明有环。反之如果的下一个结点为空,则无环。如果有环,则p到环的结点时,q一定领先p的距离为b(小于环的长度n),此时p和q相遇假设需要前进y次,则q相比p多走了距离y,能够相遇可以假设q比p多走了m圈,则y+b=mn,假设m=1,则y+b=n。y+b因为p到环结点时,
2016-08-23 12:08:44 1406 1
转载 C++中数字与字符串之间的转换
1.string-->char *string str(xinmeng);char * p = str.c_str();2.char *-->stringchar *p = "meng";string str(p);3.数字转字符串;使用sprintf()函数a.char str[10] ;int a = 1234321;sprintf(str, "%d"
2016-07-26 02:07:38 546
原创 C++拷贝构造函数
1.拷贝构造函数:class Foo{public:Foo();Foo(const Foo &,il); //拷贝构造函数}拷贝构造函数的第一个参数必须是一个引用类型,拷贝时不应该改变原对象的值,所以要求为const类型。2.如果我们不在类中显示定义拷贝构造函数,则编译器会默认创建一个,即合成拷贝构造函数。合成拷贝构造函数会将其参数的成员逐个拷贝到正在创建的
2016-07-26 01:46:52 385
转载 soap消息编解码
转自 http://www.cnblogs.com/xudong-bupt/p/3733306.html读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 使用TinyXML只需要将其中的6个文件拷贝到
2016-06-28 23:18:14 808
转载 adb安装apk常见错误
应用汇常见错误列表转自:http://www.appchina.com/mini/help/error_descrition.html应用汇的安装功能是基于安卓系统的adb开发的,adb的安装过程分为传输与安装两步。在出错后,助手会在右下角弹出详细的错误编号及建议。下面列举出几种常见的错误及解决方法.Q1:无效的安装包,安装包已损坏[INSTALL_FAILED_INV
2015-03-07 21:40:56 4208
转载 终止线程的方法
有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。 1. 使用退出标志终止线程 当run方法执行完后,线程就会退出。但
2015-01-23 11:37:13 431
原创 常用的字符串操作函数
1.strtok(char *s,const char * delim)参数s指向要分割的字符串,参数delim则为分割字符串。当strtok()在参数s的字符串中发现到参数delim时,则会将字符改为‘/0’.第一次调用,strtok()必须给予参数s字符串,往后调用,则将s置为NULL,返回指针。例:#include#includevoid main(){char st
2015-01-18 21:54:28 377
原创 一个整型数组里除了一个数字之外,其他的数字都出现了两次,找出出现一次的数字
当两个数字相同,则这两个数字异或得到0,0异或数字还是原来的数字。#includeint findunique(int *a,int len){ int result=0,i; for(i=0;i result=result^a[i]; return result;}void main(){ int a[9]
2015-01-16 16:34:39 529
原创 点亮灯泡问题
//deng pao#includevoid main(){ int i=1,j,a[65535]={0},n,b[65535]={0}; scanf("%d",&n); for(i=1;i b[i]=i; for(i=1;i for(j=0;j { j=i+j;
2015-01-16 16:06:59 489
转载 线程池3
转自:http://www.cnblogs.com/dolphin0520/p/3932921.html3.线程池中的线程初始化 默认情况下,创建线程池之后,线程池中是没有线程的,需要提交任务之后才会创建线程。 在实际中如果需要线程池创建之后立即创建线程,可以通过以下两个方法办到:prestartCoreThread():初始化一个核心线程;prestartAllCor
2015-01-13 23:27:28 433
转载 线程池2
二.深入剖析线程池实现原理 在上一节我们从宏观上介绍了ThreadPoolExecutor,下面我们来深入解析一下线程池的具体实现原理,将从下面几个方面讲解: 1.线程池状态 2.任务的执行 3.线程池中的线程初始化 4.任务缓存队列及排队策略 5.任务拒绝策略 6.线程池的关闭 7.线程池容量的动态调整 1.线程池状态 在Thread
2015-01-13 23:26:22 279
转载 线程池
Java并发编程:线程池的使用 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以
2015-01-13 23:23:19 271
原创 JAVA 线程同步
1.volatile关键字为实例域的同步访问提供了免锁机制。假定一个对象有一个布尔标记done,它的值被另一个线程设置却被另一个线程查看,如下:private boolean done;public synchronized boolean isDone(){return done;}public synchronized void setDone(){done=true;}但
2015-01-06 22:01:30 269
原创 删除子字符串
import java.util.Scanner;public class deletesubstring { public static void main(String[] args){ Scanner key = new Scanner(System.in); String str=key.nextLine(); Strin
2014-12-08 22:39:46 338
转载 opengl的变换和矩阵
OpenGL的变换和矩阵1)指定矩阵类型OpenGL中使用glMatrixMode指定当前要设置的矩阵类型,常用的参数是GL_PROJECTION和GL_MODELVIEW,还有GL_TEXTURE。OpenGL将视点变换(即摄像机变换)和模型变换(即物体变换和世界变换)合二为一了。glMatrixMode指定的模式一但指定就不会变除非再次调用glMatrixMode,所以一般在reshp
2014-11-26 17:12:12 414
JAVA中JPanel图片缓存成BufferedImage,稍候将其画出,但画出为空白
2015-03-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人