环境:  fedora 22 输入法是fcitx,搜狗输入法,  解决方法: [crayo […] 继续阅读 >>


陈志诚 16/04/04 07:58:52
C++11 多线程相关的头文件 C++ 新标准中引入了四个头文件来支持多线程编程,他们分别是 < atomic>, < thread>, < condition_variable> 和< future>. < atomic>:该头文件主要声明了两个类,std::atomic和std::atomic_flag,另外还声明了一套C分格的原子类型和与C兼容的原操作的函数. < thread>:该头文件主要声明了std::thread类,另外std::this_thread命名空间也在该头文件中. < mutex>:该头文件主要申明了与互斥量(mutex)相关的类,包括std::mutex系列类,std::lock_guard,std::unique_lock,以及其他类型和函数. :该头文件主要声明了与条件变量相关的类,包括std::condition_variable和std::condition_variable_any. < future> 继续阅读 >>


杨龙飞 16/04/03 21:40:02
1.SCTP是什么? 只要是接触过编程的人,当你问他传输层都有哪些协议?我想几乎很多人会说TCP,IP协议而很少有人知道SCTP(流控制传输协议)这个和上述俩个协议具有相同地位的协议。 SCTP提供的服务与TCP,UDP类似,或者甚至可以理解为其是TCP与UDP协议各自优点的组合后的产物。 2.SCTP的特点 (1)SCTP连接的建立 SCTP协议建立连接可调用 int sctp_connectx(int sd, struct sockaddr *addrs, int addrcnt); //或者直接发送消息就可建立连接 int sctp_sendmsg(int s, const void *msg, size_t len, struct sockaddr *to, socklen_t tolen, uint32_t ppid, uint32_t flags, uint16_t stream_no, uint32_t timetolive, uin 继续阅读 >>


苗帅 16/03/31 18:24:13
题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和. 算法思想:设为n*n的矩阵,我们设置四个边界,up,down,left,right.最中心的数的下标为n/2,n/2;初始时,我们设置边界right=down=m+1;up=left=m-1,当我们完成一次右,上,左下时,rigth++;down++,up–;left–;继续循环,直到key >n*n,即矩阵已经填满. 代码如下: #include<iostream> #define N 100 using namespace std; int main() { int a[N][N],n,key=2,i,j; cin >> n; int left=0,right=0,up=0,down=0,m=n/2; down=right=m; u 继续阅读 >>


杨龙飞 16/03/31 17:38:18
MyBatis的二级缓存的设计原理:这里写链接内容 作者:sunshine__me 发表于 2016/03/30 19:56:11 原文链接 https://blog.csdn.net/sunshine__me/article/details/51018715 阅读:657 继续阅读 >>


潘璐 16/03/30 19:56:11
算法难,难于上青天!!!!! 搞懂一个算法不容易,还是写篇博客为以后复习做好准备!!!! 动态规划算法O(n^2) 设A[i]表示序列中第i个数,dp[i]表示从0到i这一段中以i结尾的最长上升子序列的长度,初始化dp[i]=1;(i=0,1,2…(len(A)-1).则有动态方程为: dp[i]=max{dp[i],dp[j]+1}(j=0,1,2,….i-1,且A[j] < A[i]); 为什么我是max{dp[i],dp[j]+1}呢,因 为,我初始化中dp[i]=1,当我们去求dp[i],在A[1—i-1]中寻找比A[i]小的元素(下标几记为j),由于dp[j]已经求过,所以我们比较dp[j]+1和dp[i]的大小,将大的更新到dp[i]中. 我们来想一种特殊的情况,假设有两个元素A[x]和A[y],满足 (1)x #include<iostream> #define N 1000 using namespace std; int getLongCommonSub(int (&A)[6],int (& 继续阅读 >>


杨龙飞 16/03/30 16:29:38
矩阵连乘问题—–动态规划 算法思想: 给定n个矩阵{A1,A2,……..An},相连的两个矩阵满足矩阵连成的的条件,计算矩阵连乘乘积的计算次序,使得依此次序计算矩阵连乘需要的数乘的次数最少. 找出最优解的性质,刻画其特征结构 对于矩阵连乘问题,最优解就是找到一种计算顺序,使得计算次数最少. 设m[i][j]为从第i个矩阵到第j个矩阵相乘的最优解(记为A[i:j). 假设这个最优解是从第k个矩阵断开i<=k<=j,那么A[i,k]和A[k+1,j]也是相应矩阵连乘的最优解。 建立递归关系 设计算A[i:j],1<=i<=j<=n;所需要的最少数乘次数m[i][j],则整个问题的最优解就是m[i][n]; 当i==j时,即m[i][i]代表一个矩阵,不会和其它矩阵相乘,所以乘的次数为0次,所以m[i][i],即m矩阵的对角线值都为0; 当i < j时,m[i][j]=min{m[i][k]+m[k+1,j]+pi-1*pk*pj} ; (相当于把i~j这j-i个矩阵分成两段,看哪种分法的次数最少), 继续阅读 >>


杨龙飞 16/03/28 23:16:43
I/O模型 同步I/O 阻塞I/O,I/O复用,和信号驱动I/O 都是同步I/O模型. 这种I/O的读写操作,都是在I/O事件发生之后,由应用程序来完成. 同步I/O模型要求用户代码自行执行I/O操作,将数据从内核缓冲区读入用户缓冲区,或将数据从用户缓冲区写入内核缓冲区. 异步I/O 异步I/O机制则由内核来执行I/O操作,数据在内核缓冲区和用户缓冲区之间的移动是由内核在’后台完成的’ *也就是说,同步I/O向应用程序通知的是I/O就绪事件,异步I/O向应用程序通知的是I/O的完成事件. Reactor和Proactor事件处理模式 同步I/O模型常用于实现Reactor模式,异步I/O模型则用于实现Proactor模式. Reactor模式 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将事件通知工作线程(逻辑单元). 实现Reactor模式的工作流程是,以(epoll_wait为例) 主线程往epoll内核事件表中注册socket上的读就绪事件. 主线程调用e 继续阅读 >>


杨龙飞 16/03/28 21:29:20
 Set集合:           Set判断两个对象相同不是使用==运算符,而是根据equals方法.       1.HashSet:           HashSet是Set接口的典型实现,大多数时候使用Set集合就是使用这个实现类.HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能.    特点: 不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也有可能发生变化. HashSet不是同步的,如果多个线程同时访问一个HashSet,修改了HashSet集合时,则必须通过代码来保证其同步. 集合元素的值可以为null. 当向HashSet集合中存入一个对象时,HashSet会调用该对象的hashCode()方法来得到对象的hashCode值,然后根据hashCode值决定该对象在HashSet中的存储位 继续阅读 >>


胡嘉辉 16/03/27 21:21:45
转载:http://www.2cto.com/database/201211/172380.html  myisam和innodb索引实现的不同 MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引( 作者:lyh__521 发表于 2016/03/26 20:27:22 原文链接 https://blog.csdn.net/lyh__521/article/details/50988675 阅读:578 继续阅读 >>


刘瑜晗 16/03/26 20:27:22