自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 资源 (3)
  • 收藏
  • 关注

原创 jump

http://www.tuicool.com/articles/eIZR3i

2015-09-10 12:28:37 665

转载 struct union

请牢记以下3条原则:(在没有#pragma pack宏的情况下)1、数据成员对齐规则:结构体(struct)的数据成员,第一个数据成员放在offset为0的地方,之后的每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机子上为4字节,所以要从4的整数倍地址开始存储)。2、结构体作为成员:如果一个结构体里同时包含结构体成员,则结构体成员要从其内部最大元素大小的整

2015-08-12 09:51:12 598

转载 fork() 问题

前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?1234567891011121314

2015-08-11 10:39:11 581

转载 epoll

epoll简介epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高

2015-08-06 17:10:20 408

转载 核函数选取

支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。构造出一个具有良好性能的SVM,核函数的选择是关键.核函数的选择包括两部分工作:一是核函数类型的选择,二是确定核函数类型后相关参数的选择.因此如何根据具体的数据选择恰当的核函数是SVM应用领域遇到的一个重

2015-07-29 15:52:35 6934

原创 protected

class a{public:int i;protected :int j;private:int k;};a b;b.i ;b.j ; // errorb.k;//error

2015-07-15 11:07:53 301

转载 public ,protected,private

可见,多继承与单继承的区别从定义格式上看,主要是多继承的基类多于一个。  派生类的三种继承方式  公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。  1. 公有继承(public)  公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。  2

2015-07-15 10:50:09 384

转载 初始化

现在我们来看构造函数中冒号初始化和函数初始化的问题,类构造函数的作用是创建一个类的对象时,调用它来构造这个类对象的数据成员,一要给出此数据成员分 配内存空间,二是要给函数数据成员初始化,构造数据成员是按数据成员在类中声明的顺序进行构造。 冒号初始化与函数体初始化的区别在于: 冒号初始化是给数据成员分配内存空间时就进行初始化,就是说分配一个数据成员只要冒号后有此数据成员的赋值表达式(

2015-07-14 22:16:29 552

转载 虚拟继承

关于C++中的虚拟继承的一些总结1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual

2015-07-14 11:08:26 356

原创 c++ 字符串转数字 数字转字符串

to_string();stoi();

2015-07-08 15:21:32 478

转载 pthread

简述pthread是POSIX标准的多线程库,UNIX、Linux上广泛使用,windows上也有对应的实现,所有的函数都是pthread打头,也就一百多个函数,不是很复杂。然而多线程编程被普遍认为复杂,主要是因为多线程给程序引入了一定的不可预知性,要控制这些不可预知性,就需要使用各种锁各种同步机制,不同的情况就应该使用不同的锁不同的机制。什么事情一旦放到多线程环境,要考虑的问

2015-07-06 15:59:02 541

转载 spinlock与mutex对比

1, spinlock介绍spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任何时刻时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致线程的状态切

2015-07-06 10:31:46 529

转载 C/C++ Volatile关键词深度剖析

C/C++ Volatile关键词深度剖析十二 2nd, 2013发表评论 | Trackback1    背景    12    Volatile:易变的    12.1    小结    23    Volatile:不可优化的    33.1    小结    44    Volatile:顺序性  

2015-07-05 12:58:30 454

原创 程序员自我修养

Linux 下,ELF 可执行文件默认地址从0x08408000 开始分配。

2015-07-01 22:54:15 325

转载 单例的double-check

接着上一篇的单例模式说起,为什么要在多线程中创建单例模式的时候要进行双重锁定?先回顾一下双重锁定的代码块。public class SingleTon {       private static SingleTon singleTon = null;              public SingleTon() {        // TODO Au

2015-06-30 23:13:58 462

原创 矩形重合判断

if(e>=c||f>=d||g

2015-06-30 15:51:45 633

转载 c++ 单例 Double-checked Locking

Double-checked Locking在学习C++11多线程的时候,会碰到一大堆概念,mutex, lock, atomic, memory model, memory barrier, lock-free等。要更好的理解,可以:了解CPU的Memory Barriers机制(Paul McKenny的Memory Barriers: a Hardware V

2015-06-25 12:50:01 1880

原创 c++ list

listl; l.push_back(1); l.push_back(2); l.push_back(3); auto it=l.begin(); it++; cout<<*it; l.push_front(0);

2015-06-14 21:16:47 368

转载 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

最大子序列最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的

2015-06-09 20:15:43 324

原创 make_heap topk 问题

class SolutionTopK{ public: static bool inc(int x,int y) { return x>y; } vector topK(vector&a,int k) { vector

2015-06-08 22:05:15 659

转载 max_element

// min_element/max_element example#include // std::cout#include // std::min_element, std::max_elementbool myfn(int i, int j) { return i<j; }struct myclass { bool operator() (int i,int

2015-06-08 20:05:17 547

转载 三角形面积公式

2015-06-08 10:20:50 605

转载 C++游戏程序优化

carvenson   C++游戏程序优化   目 录  1 构造与析构  2 内存管理  3 虚函数  4 代码尺寸  5 标准类库  6 高级特性  7 其他参考   原 文:Optimlzation for C++ Games - Game Programming Gems II  译 者:carvenson

2015-06-04 16:48:15 398

转载 牛顿迭代法

牛顿迭代法求平方根 求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1先让我们来验证下这个巧妙的方法准确性,来算下2的平方根 (Computed by Mathomatic)1-> x_new = ( x_old + y/x_old )/2 y (x

2015-06-04 16:36:59 914

原创 树 层次 遍历 双队列

#includeusing namespace std;struct TreeNode { int val; vector children; TreeNode(int v):val(v){} };mapm;void getFather(TreeNode *root){ dequeq1,q2; q1.push_back(root); m[root]=NULL; whi

2015-05-31 18:50:23 429

转载 bst double Linked List

struct BSTreeNode //二分查找树中的一个节点    {        int          m_nValue; // 节点的值        BSTreeNode  *m_pLeft;  // 左指针域        BSTreeNode  *m_pRight; // 右指针域    };然后,我们就可以根据以上递归的思想一步一步写

2015-05-31 12:49:31 469

转载 linux 工具链

1,工具gcc:编译C文件1.1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。1.2. 选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。1.3. 选项 -E

2015-05-24 13:28:12 1367

转载 #include<bits/stdc++.h>

#include包含C++的所有头文件

2015-05-23 22:05:51 318

转载 memset的坑

【起因】希望对各种类型的数组进行初始化,避免野值      【函数头文件】 提示:在linux中可以在terminal中输入 "man memset"进行查询        #include        void *memset(void *s, int c, size_t n);      【使用说明】 The  memset()  function  fills  the

2015-05-23 11:22:12 1480

转载 多媒体指令集使用

#include "counter.h"  #include  #include  #include /*标题:我的第一个调用Intrinsics函数的程序所属项目名称:TestSSE项目类型:Win32控制台项目依赖:counter.h文件//提供计时功能描述:以前需要使用汇编对CPU的指令集进行优化,现在可以直接使用Intrinsic函数达到类似

2015-05-22 16:31:06 943

转载 linux hook

目录1. 系统调用Hook简介2. Ring3中Hook技术3. Ring0中Hook技术4. 后记1. 系统调用Hook简介系统调用属于一种软中断机制(内中断陷阱),它有操作系统提供的功能入口(sys_call)以及CPU提供的硬件支持(int 3 trap)共同完成。我们必须要明白,Hook技术是一个相对较宽的话题,因为操作系统从ring3

2015-05-21 15:21:51 4097

转载 google-perftools

1、功能简介它的主要功能就是通过采样的方式,给程序中cpu的使用情况进行“画像”,通过它所输出的结果,我们可以对程序中各个函数(得到函数之间的调用关系)耗时情况一目了然。在对程序做性能优化的时候,这个是很重要的,先把最耗时的若干个操作优化好,程序的整体性能提升应该十分明显,这也是做性能优化的一个最为基本的原则—先优化最耗时的。2、安装1、下载gperftoolsWg

2015-05-21 14:04:22 459

转载 perf

1.perf的安装        由于我们经常是在自己编译的内核上进行开发工作,这里需要有包含调式信息的内核启动镜像文件vmlinux,在自定义内核的基础之上,进入linux内核源码,linux/tools/perfmakemake install提示:1)可能在编译的时候,有报错大概是由于平台问题,数据类型不匹配,导致所有的warning都被当

2015-05-21 14:02:56 452

转载 google perftools

如果使用googler开发的google-perftools优化Nginx和MySQL的内存管理,性能将会有一定程度的提升。特别是对高并发下的服务器,效果更明显注意:本教程仅适用于Linux。下面为大家介绍google-perftools的安装,并配置Nginx和MySQL支持google-perftools。首先,介绍如何优化Nginx:

2015-05-21 10:45:42 857

转载 gcc pkg-config,

你在 Unix 或 Linux 下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中。然后,告诉你的同事说,你可以取下来用了。这时,你长长的出了一口气,几天的工作没有白费,多么清新的空气啊,你开始飘飘然了。“Hi,怎么编译不过去?”你还沉浸在那种美妙的感觉之中,双臂充满着力量,似乎没有什么问题能难倒你的。正在此时,那个笨蛋已经冲着你嚷开了。

2015-05-19 16:33:44 1517

转载 zookeeper

Zookeeper是针对大型分布式系统的高可靠的协调系统,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等由这个定义我们知道zookeeper是个协调系统,作用的对象是分布式系统。为什么分布式系统需要一个协调系统了?理由如下:开发分布式系统是件很困难的事情,其中的困难主要体现在分布式系统的

2015-05-16 16:05:17 265

转载 nginx

相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:Html代码  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服

2015-05-13 09:10:56 286

转载 C++ string 详解

任何人对本文进行引用都要标明作者是Nicolai M.Josuttis///////////////////////////////////////////////////////////////////////////////////C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦

2015-05-09 23:02:59 265

转载 gdb

网上一篇非常有用的文章,值得在LINUX下C++开发人员一观! 学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这

2015-05-08 22:53:40 209

转载 cflags

在configure时我们经常会遇到明明已经指令了目录但有时就是链接不了的情况,解决方法及原因如下(引用自http://www.cnblogs.com/taskiller/archive/2012/12/14/2817650.html) CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在

2015-05-06 09:54:03 663

c库函数 大全

c语言库函数使用大全

2012-05-27

数据结构 严蔚敏 源码

数据结构 严蔚敏 源码 所有算法源码 可以直接用的

2011-06-01

链栈的实现链栈的实现

链栈的实现链栈的实现链栈的实现链栈的实现链栈的实现

2010-10-18

空空如也

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

TA关注的人

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