自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(721)
  • 资源 (17)
  • 收藏
  • 关注

转载 GCC 提供的原子操作

GCC 提供的原子操作gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:type __sync_fetch_and_add (type *ptr, type value, ...)type __sync_fetch_and_sub (type *ptr, type value, ...)type __sync_fetch_and_...

2018-05-16 21:24:36 812

原创 打散函数的事项

打散函数的实现方法一:void RandomShuffle(std::vector<std::string>& vecs) {    for (uint32_t i = 0; i < vecs.size(); ++i) {        srand((unsigned)time(NULL));        const uint32_t slot = rand() % v...

2018-02-08 11:33:17 2539

转载 Linux 内存占用分析

这篇博客主要介绍 linux 环境下,查看内存占用的两种方式:使用 ps,top等命令;查看/proc/[pid]/下的文件。文章简要介绍了命令的使用方法与一些参数意义,同时对/proc/[pid]/下的文件内容进行了一些详细的介绍。文章内容来自google和自我总结,如有不当之处,欢迎批评指正。查看 linux 中内存占用的方法linux 下面查看内存有多种渠道,比如通过命令 ps ,top,f...

2018-02-08 11:10:46 14212

原创 vector中的resize与reserve

void reserve (size_type n);reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值,即n大于capacity的值,就会reallocate内存 capacity的值会大于或者等于n 。这样,当调用push_back函数使得size

2017-11-16 23:10:51 989

原创 c++实现反射类

在很多程序设计中,经常会遇到这样的需求,即可以通过类的名字得到对应类型的对象,尤其是一种数据需要很多策略处理的时候。比如对于网页类型的识别,一篇网页可能是视频类型、新闻类型、图片类型、网站首页、百科等很多类型中的一种,网页类型对于搜索引擎来说是非常重要的,计算rank的时候网页类型往往是一个非常重要的因子。具体实现的时候,网页类型识别的策略可以封装在类中,这样一个策略就可以设计成一个类。但是后期随

2017-02-09 10:49:20 1089

转载 accept死循环

场景:一个多线程服务器,每个线程执行一个事件循环。在事件循环开始前,调用 socket/bind/listen 监听端口,然后将监听句柄(fd)添加到 epoll,然后开始事件循环,执行 epoll_wait。epoll_wait 返回有效事件时,对于监听事件,调用 accept 建立新连接,将该连接句柄添加到 epoll;对于普通连接,调用 read/write 进行网络 IO 及其他处理逻辑。

2016-11-28 17:08:05 1782

转载 ZooKeeper原理及使用

ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。

2016-03-31 15:30:38 823

翻译 google string_split

//string_split.cc// Copyright (c) 2010 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "b

2015-11-18 19:55:04 1046

转载 mysql索引详解(转)

什么是索引索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快10

2015-08-30 11:10:48 936

转载 Linux查看CPU信息、机器型号等硬件信息

AC算法是Alfred V.Aho(《编译原理》(龙书)的作者),和Margaret J.Corasick于1974年提出(与KMP算法同年)的一个经典的多模式匹配算法,可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。正如KMP算法在单模式匹配方面的突出贡献一样,AC算法对于多模式匹配算法后续的发

2015-04-30 15:25:05 7267

转载 函数属性__attribute__((constructor))和__attribute__((destructor))

1)函数属性功能__attribute__ ((constructor))会使函数在main()函数之前被执行__attribute__ ((destructor))会使函数在main()退出后执行2)功能范围函数属性__attribute__((constructor))和__attribute__((destructor))在可执行文件或者库文件里都可以生效

2015-04-27 14:55:07 6164 1

转载 priority_queue 用法详解

priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实 现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 priority_queue, 以加深对 priority_queue 的理解#include #include

2015-04-18 21:10:30 1305

原创 C++文件操作详解(ifstream、ofstream、fstream)

C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就

2015-04-14 16:49:02 1942

转载 svn命令在linux下的使用

1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)   例如:svn checkout svn://192.168.1.1/pro/domain    简写:svn co2、往版本库中添加新的文件  svn add file   例如:svn add test.php(添加test.php)   svn add

2015-03-31 18:29:35 678

原创 Observer观察者模式

Observer观察者模式作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己UML图:Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以

2015-02-16 15:21:32 983

转载 【Boost】Boost总结汇总

boost::noncopyable比较简单, 主要用于单例的情况.通常情况下, 要写一个单例类就要在类的声明把它们的构造函数, 赋值函数, 析构函数, 复制构造函数隐藏到private或者protected之中, 每个类都这么做麻烦.有noncopyable类, 只要让单例类直接继承noncopyable. class noncopyable的基本思想是把构造函数和析构函数设置p

2015-01-28 14:55:27 1479

转载 protobuf应用与原理详解

简介什么是 Google ProtocolBuffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google ProtocolBuffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol Bu

2014-12-24 16:28:47 4466

原创 UE工具使用

1、

2014-11-04 15:57:32 1310

原创 常用shell命令集合

1、进程查找ps -ef | grep proc_name  | grep -v grepps -aux | grep proc_name  | grep -v grep2、进程数目proc_num=`ps -aux | grep proc_name  | grep -v grep`echo ${proc_num}3、if的使用#!/bin/ba

2014-11-03 21:13:15 2403

翻译 Google common.h

原文:https://code.google.com/p/protobuf/source/browse/trunk/src/google/protobuf/stubs/common.h?r=89

2014-10-29 14:52:32 2282 1

翻译 C++的JSON库及使用方法

#ifndef CPPTL_JSON_H_INCLUDED# define CPPTL_JSON_H_INCLUDED# include "forwards.h"# include # include # ifndef JSON_USE_CPPTL_SMALLMAP# include # else# include # endif# ifdef JSON_USE_CPP

2014-10-29 14:47:24 2864

翻译 google string_util.cc

// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "base/string_uti

2014-10-20 11:15:34 2262

原创 vector中struct等自定义结构排序

对于vector结构包含自定义的包括struct等的排序

2014-07-21 20:24:28 3905 1

原创 python获取文件下所有文件

def getListFiles(path):    assert os.path.isdir(path), '%s not exist.' % path    ret = []    for root, dirs, files in os.walk(path):        print '%s, %s, %s' % (root, dirs, files)        fo

2014-07-17 00:20:20 928

原创 生产消费者模式

#!/usr/bin/env python# -*- coding: utf-8 -*-import threadingfrom time import ctimefrom random import randintfrom time import sleepfrom Queue import Queueclass CThread(threading.Thread):

2014-06-25 20:29:56 814

转载 [RabbitMQ+Python入门经典] 兔子和兔子窝

RabbitMQ作为一个工业级的消息队列服务器,在其客户端手册列表的Python段当中推荐了一篇blog,作为RabbitMQ+Python的入门手册再合适不过了。不过,正如其标题Rabbit and Warrens(兔子和养兔场)一样,这篇英文写的相当俏皮,以至于对于我等非英文读者来说不像一般的技术文档那么好懂,所以,翻译一下吧。翻译过了,希望其他人可以少用一些时间。翻译水平有限,不可能像原

2014-05-26 13:38:39 1304

转载 python 详解re模块

正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。^ 如果放在字符串的开头,则表示取非的意思。[^5]表示除了5之外的其他字符。而如果^不在字符串的开头,则表示它本身。具有重复功能的元字符:* 对于前一个字符重复0到无穷次对于前一个字符

2014-05-26 09:57:32 984

转载 Python面向对象详解

引言提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐述Python对面向对象的支持。在讨论Python的OOP之前,先看几个OOP术语的定义:类:对具有相同数据和方法的一组对象的描述或定义。对象:对象是一个类的实例。

2014-05-21 10:26:59 1212

转载 malloc函数的一种简单的原理性实现

malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针malloc()工作机制  malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的

2013-10-13 18:35:24 1436

原创 查找数组中第二大或者第二小的数值

1、从一个给定的、无序的数组中,找出第二大的数值。#include int FindSecondBiggest(int *v, int len){ if (v == NULL || len < 2) { return 0xfffffff; } int i, max = v[0], second = v[1]; for (i = 2; i < len; ++ i) {

2013-10-08 09:33:07 4765 1

原创 二叉树的非递归遍历(递归和非递归)

二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历

2013-09-17 23:48:31 1492

原创 从行,列均为递增的二维数组中查找给定元素

如题:设计算法bool Find(int *maxtrix, const int rows, const int cols, const int key){ if (maxtrix == NULL || rows < 0 || cols < 0) { return false; } bool found = false; int row = 0, col = cols

2013-09-17 12:23:09 1223 1

原创 实现sqrt和pow函数

方法一、一个采用牛顿迭代法的函数double sqrt(double number) { if(number<=0)return 0; //设置初始值i,i值越接近sqrt(number),所需循环次数越少 double i = 1; //一个快速算法是:int exp;double i=ldexp(frexp(number,&exp),(

2013-09-16 23:47:00 3125

原创 堆与堆排序

堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下

2013-09-15 23:37:19 1215

转载 有道概率题:一个有趣的抛硬币问题

假设有一个硬币,抛出字(背面)和花(正面)的概率都是0.5,而且每次抛硬币与前次结果无关。现在做一个游戏,连续地抛这个硬币,直到连续出现两次字为止,问平均要抛多少次才能结束游戏?注意,一旦连续抛出两个“字”向上游戏就结束了,不用继续抛。上面这个题目我第一次见到是在pongba的TopLanguage的一次讨论上,提出问题的人为Shuo Chen,当时我给出了一个解法,自认为已经相当

2013-09-15 23:03:59 3292

转载 一个骰子,6面,1个面是 1, 2个面是2, 3个面是3,问平均掷多少次能使1、2、3都至少出现一次。

题目:一个骰子,6面,1个面是 1, 2个面是2, 3个面是3,问平均掷多少次能使1、2、3都至少出现一次。解法一:(没学过《组合数学》的请略过)设P(N=n)表示第n次(n>2)抛出后1,2,3都出现的概率,问题要求n的期望E(N=n).掷1的概率p=1/6,掷2的概率q=1/3,掷3的概率r=1/2.//程序实例#include using namespace

2013-09-15 22:02:43 5744

原创 数组前半部分和后半部分有序列的全排序

例如:已知数组a前半部分a[0,mid - 1],后半部分a[mid,num-1],现前半部分和后半部分均已排好序。要求:实现a数组的从小到大排序。空间复杂度为O(1).#include using namespace std;void PrintArry(int v[],int len){ for(int i = 0; i < len; i ++)

2013-09-13 15:55:33 2049

转载 从B 树、B+ 树、B* 树谈到R 树

#include void printHead(){ cout<<"+----------+"<<endl; }void printTail(){ cout<<"+----------+"<<endl; }void printFull(){ cout<<"|++++++++++|"<<endl;}void printEmpty(){ cout<<"|-----

2013-09-13 12:42:55 2790 1

原创 linux安装jdk

1、软件下载  下载地址:http://www.oracle.com/technetwork/java/javase/index.htmlJDK版本:jdk-6u31-linux-i586.bin2、卸载原有的JDK[root@localhost usr]# rpm -qa | grep jdkjava-1.6.0-openjdk-1.6.0.0-1.7.b09.e

2013-08-26 17:31:35 1087

原创 hadoop集群搭建

环境:操作系统Centos 5.5 64-bit三台节点,计划部署分配如下: ip                       主机名             用途172.16.48.201 sg201 namenode 172.16.48.202 sg202 datanode172.16.48.203    sg203            datanod

2013-08-26 17:01:22 1087

分布式系统英文版

分布式系统的英文版课本,原版的英文文本,希望对大家有所帮助,现分享给大家。

2012-03-10

OpenGL开发的下雪的场景

OpenGL开发的下雪的场景,配置背景音乐,场景比较舒适,VC+OpenGL 学习的经典 ~~

2011-06-03

用VC开发的数字钟系统

用VC开发的数字钟系统,整个过程,算法设计的比较好,分享给大家 ~~

2011-06-03

C语言图书管理系统,很经典的代码

C语言图书管理系统,功能很齐全,模块化,分享给大家 。。。

2011-06-03

socket网络通信报考客户端和服务器端

socket网络通信报考客户端和服务器端,是比较好学习socket通信基础的网络通信系统

2011-06-03

用vc开发的peeryou

用MFC开发的peeryou系统,结合网络通信相关技术,不错的学习VC和网络通信的结合体

2011-06-03

ARM与智能手机软件开发

ARM与智能手机软件开发,这是一套完整的资料,比较系统地介绍了这些知识和技术,供大家学习和交流~~

2011-03-26

在Symbian开发环境,开发技术

在Symbian开发环境,开发技术,这是一套完整的学习资料,比较系统的介绍了Symbian开发,分享给大家~~

2011-03-26

用MFC做的数字示波器,觉得挺好的

用MFC做的数字示波器,觉得挺好的,具有全方位的各种功能,可以供大家学习和参考,希望对大家能有所帮助~~

2011-03-26

已知二叉树的前序和中序遍历,打印后序遍历

已知二叉树的前序和中序遍历,打印后序遍历,采用二叉树的非递归算法,分享给大家~~

2011-03-26

全国计算机等级考试,上机考试题目基本上是这里面的

这里包含了计算机等级考试中,上机考试的每种题型,而且考试的题目,每年基本从这里选择的,希望能对各位有所帮助,分享给大家~~

2011-03-26

利用VC开发的FlashPlayer播放器,播放文件格式为swf

利用VC开发的FlashPlayer播放器,播放文件格式为swf,类似于暴风影音,画面效果和音质都很不错的

2010-03-31

利用VC+OpenGL显示动态画面

利用VC+OpenGL显示动态画面,三位立体的画面~~

2010-03-31

利用VC做的定时关闭计算机

很实用的,利用VC做的定时关闭计算机,功能比较好,方便计算机用户

2010-03-31

基于表达式的计算器功能比较齐全

利用VC编写的,功能比较齐全的专业科学计算器

2010-03-31

在C语言中算法实现寻找马鞍点算法

通过对二维数组的处理,提出好的算法,进而达到找到马鞍点的要求!

2010-03-29

利用vc++做的简单的计算器

用VC++做了个计算器,能实现一些最基本的功能,分享一下,呵呵

2010-03-29

空空如也

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

TA关注的人

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