- 博客(22)
- 资源 (7)
- 收藏
- 关注
原创 git
1. error: The requested URL returned error: 403 Forbidden while accessing https://github.com/test/jekyll_test.git/info/refstest 是github账号的用户名解决方法: vi .git/config 将 url = https://github.com/test/
2015-12-25 14:46:29
383
原创 Linux 虚拟内存
要讲虚拟内存,需要先讲几个概念1. 逻辑地址:逻辑地址是程序产生的段的偏移地址。example: 在C/C++ 中声明一个指针,通过&操作,可以读取这个指针本身值,这个就是逻辑地址,他是相对于当前进程数据段的地址。2. 线性地址:逻辑地址到物理地址变换的中间层。程序代码会产生逻辑地址,也就是段的偏移地址,加上段的基地址就可以构成线性地址。如果没有启用分页机制,那么线性地址就是物理地址。
2015-06-11 09:51:22
393
转载 寻找最近公共祖先
http://www.cppblog.com/myjfm/archive/2011/05/12/146282.aspxhttp://blog.csdn.net/cxllyg/article/details/76359921、看递归就知道其实还是深度遍历这棵树;2、首先使当前节点u的父指针指向自己;3、处理u的所有孩子节点,每处理完一个孩子节点就让孩子节点的父指针
2015-06-10 22:28:26
454
原创 生成随机数
1. 已有一个随机数发生器,生成0的概率是p,生成1的概率是1-p。如何利用该发生器制作一个1~n的概率都是1/n的发生器。1> 1,2 00,01,10,11 01和10都是 p(1-p)2>1,2,3 100,001,010 p*p*(1-p)2. 已知有rand7()的函数,返回1到7随机自然数。利用rand7()构造rand10()随机数1~10 (r
2015-06-10 16:53:12
382
原创 给一个数组,求他的子串,使该子串的和最大
如果f[m-1]>0, f[m]=f[m-1]+a[m]f[m-1]解释如下:如果array[i,...k,....j]就是满足和最大的子串,那么对于任何k(iint kadane(const int array[],int length,int& left,int& right){int i,cur_left,cur_right;int max,cur
2015-06-10 15:46:32
436
原创 判断一个二叉树是否是完全二叉树
思想:采用广度优先遍历,从根节点开始入队,如果队列不为空,循环。遇到第一个没有左/右 孩子的节点,设置标志位,如果之后再遇到有左/右孩子的节点,那么这不是一棵完全二叉树。struct Node 5 { 6 int value; 7 Node* left; 8 Node* right; 9 }; 10 Queue queue; 11
2015-06-10 14:58:15
468
原创 C++ 中的智能指针
1. auto_ptr的使用1> 不用使用operator = ,这样会转移控制权。(下面会给出例子解释)2> 调用release并不会释放释放对象,仅仅是归还控制权。3> 由于operator = 的问题,不能将auto_ptr指针放进STL容器。4> auto_ptr不能指向数组,因为auto_ptr析构调用的时候只能调用delete,不能调用 delete[]cl
2015-06-10 11:25:26
328
原创 C++ 中的类型转换函数
1. 四种: static_cast,dynamic_cast,const_cast,reinterpret_cast2. 他们的使用1>static_cast: 任何隐式转换都可以由它完成,仅当类型之间可隐式转换时(除类层次间的下行转换),static_cast的转换才是合法的,否则将出错。 class A 4 { 5 public: 6 virtu
2015-06-09 22:45:31
509
原创 C++中如何避免内存泄露
1. 在类的构造函数中new ,在类的析构函数中delete2. 函数中申请的内存,一定要在函数结束的时候释放。3. 基类和子类各自管理各自的内存,此时要注意将基类的虚函数声明为虚函数.(这样做是为了确保当用一个基类指针删除一个派生类的对象时,派生类的析构函数会被调用)。4. 同时还要注意的是,记得把重写拷贝构造函数,需要给类增加一个引用计数,记录有多个指针指向这块内存。防止重复当
2015-06-09 22:34:03
584
原创 placement new的用法
1. 平时new一个对象都是在堆上分配内存,但是要先找出哪块内存是空闲的,堆是用链表实现的,这样的话效率有点低,所以可以预先申请出一块比较大的内存,当需要申请对象的时候就在这块已经开辟好的空间分配。 同时也避免了内存分配不足的情况。2. 使用方法:1> 提前分配空间class MyClass{......}char* buf=new char[N*sizeof(MyClass)
2015-06-09 22:03:14
332
原创 socket C/C++ linux
1. socket 其实也是文件描述符,从本质上讲跟普通文件没有什么区别。所以read和write 同样适用于socket,但是linux也提供了专门的接口。2. 对于TCP来说: size_t recv(int sockfd,void* buf,size_t len,int flags) 前三个参数的意义很好理解,最后一个参数的意义如下所示。 size_t send(int soc
2015-06-09 21:49:37
371
原创 new delete malloc free的区别
1. malloc free 是C中使用的关键字,new delete 是C++中使用的关键字2. new 和delete 分成两步 1> 分配内存空间,会根据类型自行计算 2> 调用构造函数,构造对象 malloc 只是完成了第一步,分配了内存空间。返回的是内存的起始地址,如果分配失败返回NULL。 delete : 1> 调用析构函数 2> 释放内存空间
2015-06-09 10:57:59
310
原创 C++ 中的map
1. C++ 中的map想必大家都用过,我也是大一的时候就使用过,但是一直到最近的一个项目才发现对于C++中的map,自己认识的竟然是如此粗浅。2. set和map一样都是有序的,用树作为存储结构。主要的函数:1> 构造函数: map MAP;2> 插入数据:1. map.insert(pair(1,"hello"));2. map.insert(map::value_ty
2015-06-09 10:21:59
477
原创 C++ 多态的一些理解
1. C++ 中的多态,简单来说是用基类的指针指向子类的对象,然后用这个基类指针就可以调用子类对象的方法(这些方法在基类中有,且被声明为虚函数);如果一个方法没有被声明为虚函数,则调用哪个方法取决于指针的类型。2. 这是自己写的一个例子class A{public:virtual void say(){cout}};class B:public:
2015-06-09 09:55:27
337
转载 程序员面试题精选(17)-把字符串转换成整数_资料存档
http://zhguiqiang.blog.163.com/blog/static/9993752200861310505693/程序员面试题精选(17)-把字符串转换成整数2007年10月17日 星期三 下午 10:03题目:输入一个表示整数的字符串,把该字符串转换成整数并输出例如输入字符串"345",则输出整数345 分析:这道题尽管不是很
2014-07-31 09:19:04
579
原创 用户
1.1 关键技术1>基于用户的关系,联系,构建模型,推断用户的年龄2>基于用户的互动和关系,在社交网站的留言信息,构建模型,推断用户的性别3>基于用户的基本信息和所在的朋友圈,构建传播模型,推断出用户的行业4>基于用户的网上留言信息和开源数据集的先验知识,采用pageRank算法,推断出用户的兴趣1.2 创新点现有的算法只适合单台服务器和小规模的数据,对于大数据量根本没法承
2014-07-28 12:27:57
589
转载 Java:Ant打包jar文件(有lib目录)
使用Ant打包Jar文件主要是lib/*.jar的路径需要注意: jar包里的jar包是不能被识别为classpath使用方法:如果代码是如下面的目录结构组织的,不需要修改什么,直接在终端运行ant命令即可在out目录输出对应的jar文件。 project |-bin |-src |-lib
2014-07-14 10:26:45
706
转载 libsvm 使用的一个很小的例子
package com.svm;import java.io.IOException;import libsvm.svm;import libsvm.svm_model;import libsvm.svm_node;import libsvm.svm_parameter;import libsvm.svm_problem;public class jmain {
2014-07-01 16:52:31
743
转载 编程珠玑-如何给10^7个数据量的磁盘文件排序
http://blog.csdn.net/v_JULY_v/article/details/6451990http://tudian2007.blog.163.com/blog/static/3156641320128116561981/
2014-06-20 17:52:06
404
转载 编程珠玑-如何给10^7个数据量的磁盘文件排序
/磁盘文件排序位图方案的伪代码 //copyright@ Jon Bentley //July、updated,2011.05.29。 //第一步,将所有的位都初始化为0 for i ={0,....n} bit[i]=0; //第二步,通过读入文件中的每个整数来建立集合,将每个对应的位都置为1。 for each i
2014-06-20 17:50:08
459
原创 python 梯度下降应用于线性回归
import osimport os.pathdef lineLogist(): #train data x = [(1,104,3),(1,100,3),(1,200,3),(1,216,2),(1,300,4)] #y[i] is the output of y = theta0 * x[0] + theta1 * x[1] +theta2 * x[2]
2014-06-17 14:18:26
516
tcpdump-171218-1649-54.pdf
2020-06-05
Google_Cpp_Style_guide_CN.pdf
2020-06-05
C++11 Memory Model.pdf
2020-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人