
c/c++
yfk
这个作者很懒,什么都没留下…
展开
-
c++关键字struct和class的区别
c++中关键字struct和class的区别如下: 1. struct成员默认权限是public,而class为private 2. struct默认继承为public继承,class默认继承为private 3. class参数可以用来定义模板参数原创 2011-06-13 22:49:00 · 2097 阅读 · 0 评论 -
c++类型识别及转换
1. 概念RTTI(Run-Time Type Information)即运行时类型识别,c++通过RTTI实现对多态的支持。c++是静态类型语言,其数据类型是在编译期就确定的,不能在运行时更改。为了支持RTTI,C++提供了一个type_info类和两个关键字typeid和dynamic_cast。type_info :存储特点类型的相关信息,常用来比较对象类型,type原创 2012-02-21 22:24:11 · 8100 阅读 · 0 评论 -
Redis源码分析:AOF
源码版本:redis 2.4.4AOF(append-only fashion)是redis持久化利器之一。通过写log的方式,以满足在需要的时候,重建数据的需求。the AOF persistence logs every write operation received by the server, that will be played again at server start原创 2012-01-11 22:08:15 · 5202 阅读 · 0 评论 -
Getting Started with Boost
1. Boost是什么 Boost库是一个可移植、提供源代码的C++库,其覆盖了广泛的领域,从数学库到智能指针,从模板元编程库到预处理器库,从线程到lambda表达式等等。 Ten Boost libraries are already included in the C++ Standards Committee's Library Technical Report (T原创 2011-09-15 01:00:13 · 3077 阅读 · 0 评论 -
MurmurHash PK CityHash
1. 概述murmurhash是 Austin Appleby于2008年创立的一种非加密hash算法,适用于基于hash进行查找的场景。murmurhash最新版本是MurMurHash3,支持32位、64位及128位值的产生。murmurhash标准使用c++实现,但是也有其他主流语言的支持版本,包括:perl、c#、ruby、python、java等。murmurhash在多个开源项原创 2012-03-14 21:08:06 · 29341 阅读 · 2 评论 -
C++内存分配异常处理
在内存分配失败的情况下,new会抛出bad_alloc的异常,而malloc会返回空指针。a. new异常处理try { int* a = new int[8000000000]; cout << "get memory" << endl; } catch(bad_alloc& ba) { cout << "catch the exception" << endl;原创 2011-04-14 15:12:00 · 3990 阅读 · 1 评论 -
Sqoop:容错
对于一个传输工具/平台,传输任务失败不可怕,可怕的地方在于“脏数据”如何处理,3种思路:1. 临时表:使用临时表缓存数据,然后在一个transaction中将临时表的数据move到目的表2. 自定义回滚:通过用户自定义的语句/方法,在任务失败后,执行清数据操作3. 传输任务的幂等性:如果一个任务失败了,产生了脏数据,解决问题后,再跑一次任务,能够最终正确,例如hive写入使用INSERT OVERWRITE,原创 2014-01-03 19:16:48 · 15729 阅读 · 1 评论 -
pthread_mutex_lock引起的core
遇到一个奇怪的corecore在pthread_mutex_lock下一行最后发现:原创 2011-08-09 22:08:59 · 6028 阅读 · 0 评论 -
说说union
1. 概念什么是union?union是一种特殊的类(struct/class),其特殊之处在于,union内的变量共享一段内存,并且union占用内存大小等于其内占用内存最大的变量的大小eg: //定义结构 struct Node_s { doubl原创 2011-08-11 01:33:01 · 3593 阅读 · 3 评论 -
算法:求去重后元素个数
给出一个整型数组,计算去重后元素个数eg:int a[] = {1,2,3,1,2,3,3}; 去重后元素个数为3方法1:暴力check是否重复,复杂度O(n^2)对于a[m],顺序比较a[m-1],a[m-2].....a[0],全部不重复,去重原创 2011-09-08 16:42:34 · 4095 阅读 · 1 评论 -
堆与栈的关系与区别
一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放 在函数体中定转载 2011-06-14 09:38:00 · 2458 阅读 · 2 评论 -
源码分享:c++配置类
网上一个热心的大牛分享了一个c++配置类,如下:Config.h //Config.h #pragma once #include #include #include #include原创 2011-09-23 02:14:16 · 4697 阅读 · 0 评论 -
c++开源日志库log4cplus
1. 简介log4cplus是C++编写的开源的日志系统,The purpose of this project is to port the excellentLog for Java (log4j)logging library to C++。log4cplus具原创 2011-09-23 01:28:04 · 8485 阅读 · 4 评论 -
源码分享:输出到mysql包装
mysql输出接口,包扩重连接Output_mysql.h// Output_mysql.h: interface for the Output_mysql class./////////////////////////////////////////////////原创 2011-10-08 13:57:15 · 1737 阅读 · 0 评论 -
Redis repl-disable-tcp-nodelay配置
Redis的Replication有一个配置“repl-disable-tcp-nodelay”在slave和master同步后(发送psync/sync),后续的同步是否设置成TCP_NODELAY假如设置成yes,则redis会合并小的TCP包从而节省带宽,但会增加同步延迟(40ms),造成master与slave数据不一致假如设置成no,则redis master会立即发送同步数据,没有延迟前者关注性能,后者关注一致性原创 2014-03-20 19:14:02 · 17696 阅读 · 1 评论