自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凡星闪点

磨刀不误砍柴工,沉住气不少打粮食

  • 博客(106)
  • 收藏
  • 关注

转载 判断单链表是否存在环,判断两个链表是否相交问题详解

转:http://www.cppblog.com/humanchao/archive/2008/04/17/47357.html有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环

2014-03-24 19:19:56 825

转载 判断单链表里面有没有环

转:http://www.cnblogs.com/zhyg6516/archive/2011/03/29/1998831.html这题目还是慢有意思的。题目:0.如何判断单链表里面是否有环?算法的思想是设定两个指针p, q,其中p每次向前移动一步,q每次向前移动两步。那么如果单链表存在环,则p和q相遇;否则q将首先遇到null。这里主要理解一个问题,就是为什

2014-03-24 19:16:29 805

转载 找出字符串的最长不重复子串,输出长度

link: http://blog.sina.com.cn/s/blog_787e499f0100ukzq.html谢谢思想,略微有点改动,但没有实际测试。这道题有O(N)的算法,具体思路如下:以abcbef这个串为例用一个数据结构pos记录每个元素曾出现的下标,初始为-1从s[0]开始,pos['a'] == -1,说明a还未出现过,令pos['a']

2013-12-21 20:11:08 1356

转载 TCMalloc

link: http://blog.163.com/cp7618@yeah/blog/static/70234777201251345350339/Tcmalloc通过preload或者直接动态链接的方式对malloc等内存分配和释放函数进行截获并提供服务。Tcmalloc提供接口主要涵盖malloc.h的接口 使用要使用TCMalloc,只要将tcma

2013-12-19 17:08:51 995

转载 Implementing operator->* for Smart Pointers

http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1999/9910/9910b/9910b.htm#l14 Implementing operator->* for Smart PointersDr. Dobb's Journal October 1999Classe

2012-06-20 00:14:47 1149

转载 操作符重载手册

操作符重载手册反正我是总忘了某些重载如何写,从网上弄下来这篇文章,需要的时候查阅一下,很舒服。共享之!一、重载规则I.可以重载的操作符+ - * / % ^ & | ~ ! = > < += -= *= /= %= ^= &= |= >> << >>= <<= == != >= <=

2012-06-20 00:08:48 565

转载 C/C++语言不常用的几个关键字

连接: http://blog.chinaunix.net/uid-20484604-id-1941283.htmlmutable关键字关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化!如果一个类的成员函数被声明为const类型,表示该函数

2012-05-19 01:16:23 709

转载 Boost Thread学习笔记二

链接: http://hi.baidu.com/jrckkyy/blog/item/4aaccaf06f30c1ca7931aa90.htmlBoost Thread学习笔记二2009年07月22日 星期三 下午 6:05除了thread,boost::thread另一个重要组成部分是mutex,以及工作在mutex上的boost::mutex::scoped_lo

2012-04-15 22:22:25 579

转载 log4cxx的使用模式

链接: http://www.cppblog.com/jinq0123/archive/2011/11/24/160924.html== 初始化配置 ==Main.cpp中初始化配置.如果不需要监视配置文件并自动重新配置,就不需要调用configureAndWatch().执行目录下的log4j.properties是会自动读取的。#include int ma

2012-04-06 10:49:46 640

转载 log4cxx配合boost::format

og4cpp用了多年了, 一直用得很得心应手.现在做网游服务器, 日志类换成了log4cxx.log4xx会自动加载工作目录下的log4j.properties, 这一点比较好, 使用更方便了.log4j.properties应该与log4j的配置文件完全一样吧? 通用性好.其他方面两个日志类差不多. log4cxx::Logger对应log4cpp::Category.

2012-03-31 17:43:45 921

转载 使用模板有什么缺点?如何避免?

文章来源:http://group.gimoo.net/review/82612templates(模板)是节省时间和避免代码重复的极好方法,我们可以只输入一个类模板,就能让编译器实例化所需要的很多个特定类及函数。类模板的成员函数只有被使用时才会被实例化,所以只有在每一个函数都在实际中被使用时,我们才会得到这些函数。确实这是一个很重要的技术,但是如果不小心,使用模板可能会导致代码膨胀。

2012-03-28 23:28:05 700

转载 算法数据结构试题——在数组中找出已知和的组成数

已知有12个数 现在知道其中的几个数的和 要求知道这个和是哪几个数的和 把所有的组合都找出来 谢谢先,帮朋友问的 /*  *不知道符不符合楼主要求,测试了,编译可通过。  */  #include   int main(void)  {      int sum(int [], int);      int output(int [], int);      /

2012-03-28 18:53:58 645

转载 Google Protobuf - 实现跨平台跨语言的序列化/反序列化

转载请注明来自“柳大的CSDN博客”:Blog.CSDN.net/PoechantGoogle Protocol Buffer 是一个平台无关、语言无关的结构化数据的序列化与反序列化工具。1 Establish dev environmentwget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gzt

2012-03-28 18:39:24 1773

转载 Linux 的多线程编程的高效开发经验

http://www.cppblog.com/elva/archive/2010/08/09/122843.html2009 年 4 月 23 日本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。背景Lin

2012-03-14 22:31:49 402

转载 C++箴言:理解typename的两个含义

template class Widget; // uses "class"template class Widget; // uses "typename"  答案:没什么不同。在声明一个 template type parameter(模板类型参数)的时候,class 和 typename 意味着完全相同的东西。一些程序员更喜欢在所有的时间都用 class,因为它更容易输入。其他人(包

2012-03-14 17:52:02 535

转载 我使用过的Linux命令之dot - 绘制DOT语言脚本描述的图形

链接:http://blog.csdn.net/xiongwei1209/article/details/6774191我使用过的Linux命令之dot - 绘制DOT语言脚本描述的图形本文链接:http://codingstandards.iteye.com/blog/840055   (转载请注明出处)用途说明Graphviz (Graph Vi

2012-03-14 14:16:27 7108

转载 网络--面试题目整理(一)

http://blog.csdn.net/xiongwei1209/article/details/7324164经常在网上看到一些面试题目,为了不让自己忘记,特地将看到的有意思的题目整理下来以备后续只用。对于软件工程师来说面试语言的题目都到大同小异,找本书看看也就差不过了,关键是一些实际应用中的题目比如数据结构 算法的题目会多样化,这个只能做好扎实的基本功,看更多的题目就是给

2012-03-14 13:50:13 786

转载 HowToEmitYAML

This outlines the basic methods for emitting a YAML document. FeaturedUpdated Sep 13, 2011 by [email protected] ContentsBasic EmittingSimple Lists and MapsUsing ManipulatorsSTL Co

2012-03-07 18:30:41 739

转载 HowToParseADocument

This outlines the basic methods for parsing a YAML document. FeaturedUpdated Nov 12, 2011 by [email protected] ContentsBasic ParsingReading From the DocumentGetting More Complicated

2012-03-07 18:27:00 510

转载 cppunit与装饰模式

当一个接口需要重复测试时,就需要考虑将这个重复的次数放到什么地方了,RepeatedTest就是用来装饰一个普通测试用例的。其声明如下:class CPPUNIT_API RepeatedTest : public TestDecorator //TestDecorator直接从Test派生{public:  RepeatedTest( Test *test,

2012-03-07 14:41:55 394

转载 cppunit与单例模式

cppunit用到单例模式的地方只有一处,那就是在TestFactoryRegistry.cpp文件的TestFactoryRegistryList类中,它提供一个静态类函数如下:  static TestFactoryRegistryList *getInstance()  {    static TestFactoryRegistryList list;    return &

2012-03-07 14:41:15 338

转载 cppunit与观察者模式

TestResult作为Data Modal,TestLisener作为subscriber。程序运行时需要向TestResult注册观察者,如:     // Create the event manager and test controller     CPPUNIT_NS::TestResult controller;     // Add a listener that

2012-03-07 14:40:40 452

转载 cppunit与组合模式

首先看一下类的继承结构吧(斜体代表抽象类):      最后存在于内存中的TestSuite和TestCaller对象都是从Test派生而来,TestSuite有这样一个属性:private:  CppUnitVector m_tests;      作为component,它可以有很多leaf节点,但是由于它也是从Test派生而来,所以它又可以成为别的component的页节

2012-03-07 14:40:06 406

转载 cppunit与工厂模式

首先约定一些常用词语。        class StringToolsTest : public CPPUNIT_NS::TestFixture        {              CPPUNIT_TEST_SUITE( StringToolsTest );                     CPPUNIT_TEST( testToStringInt );

2012-03-07 14:39:27 896 1

转载 开放源码 C/C++ 单元测试工具,第 1 部分: 了解 Boost 单元测试框架

什么是单元测试?复杂的 C/C++ 代码中很可能有 bug,到代码编写完成之后再来测试就像大海捞针。比较谨慎的办法是,在编写各个代码段时,针对特定的区域(例如,一些包含大量计算的C 函数或声明队列等数据结构的 C++ 类),添加专门的小测试(单元测试),以在编写代码的同时进行测试。按这种方式构建的回归测试套件包含一套单元测试和一个测试驱动程序,这个程序运行测试并报告结果。回页首

2012-03-07 14:38:35 513

转载 开放源码 C/C++ 单元测试工具,第 2 部分: 了解 CppUnit

本文是讨论开放源码单元测试工具的 系列文章 的第 2 篇,介绍非常受欢迎的 CppUnit — 最初由 Eric Gamma 和 Kent Beck 开发的 JUnit 测试框架的 C++ 版本。C++ 版本由 Michael Feathers 创建,它包含许多类,有助于进行白盒测试和创建自己的回归测试套件。本文介绍一些比较有用的 CppUnit 特性,比如 TestCase、TestSu

2012-03-07 14:37:17 510

转载 利用C++模板,代替虚函数实现类的静态多态性

熟悉模板编程的朋友或许听到过这个技巧或者模式:Barton-Nackmann 技巧或者称 奇异循环模板模式(Curiously Recurring Template Prattern)。    其实在 《c++ 编程语言》这本bible 书里,在模板那章提到过一个很奇妙的类的实现,用的就是这个技术。当时,我就被C++模板技术叹为观止。近期在学boost库时偶然碰到了这个技巧,同时在写一个类时引

2012-03-07 09:46:07 526

转载 LINUX多线程互斥量和读写锁区别

线程的同步, 发生在多个线程共享相同内存的时候, 这时要保证每个线程在每个时刻看到的共享数据是一致的. 如果每个线程使用的变量都是其他线程不会使用的(read & write), 或者变量是只读的, 就不存在一致性问题. 但是, 如果两个或两个以上的线程可以read/write一个变量时, 就需要对线程进行同步, 以确保它们在访问该变量时, 不会得到无效的值, 同时也可以唯一地修改该变量并使它生效

2012-03-05 11:00:18 399

转载 用C++实现多线程Mutex锁(Win32)

本文目的:用C++和Windows的互斥对象(Mutex)来实现线程同步锁。    准备知识:1,内核对象互斥体(Mutex)的工作机理,WaitForSingleObject函数的用法,这些可以从MSDN获取详情; 2,当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线

2012-03-05 10:57:58 469

转载 Linux平台上用C++实现多线程互斥锁

在上篇用C++实现了Win32平台上的多线程互斥锁,这次写个Linux平台上的,同样参考了开源项目C++ Sockets的代码,在此对这些给开源项目做出贡献的斗士们表示感谢!    下边分别是互斥锁类和测试代码,已经在Fedora 13虚拟机上测试通过。Lock.h[cpp] view plaincopy#ifndef _Lock_H  #define _Loc

2012-03-05 10:56:34 522

转载 互斥对象锁和临界区锁性能比较

http://blog.csdn.net/chexlong/article/details/7060425  在Win32平台上进行多线程编程,常会用到锁。下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用。代码已在VS2005环境下编译测试通过。Lock.h[cpp] view plaincopy

2012-03-05 10:55:12 564

转载 Boost的转换函数(二)

boost::numeric_cast在c++中,我们经常需要把不同类型的数字互相转换,如将一个数字在long和short之间转换。但由于各数字的精度不同,当一个数字从"大"类型到"小"类型就可能导致转换失败,如下所示:long n1 = 99999999;short n2 = static_castshort>(n1);对于如上转换,n2得到的是一个负数,显然这个不是我们所期望的

2012-03-02 13:29:05 381

转载 Boost的转换函数(一)

Boost的转换函数是对C++中的四种类型转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)的一些补充和扩展,在阅读本文前,请先熟悉C++中的四种类型转换函数相关知识。polymorphic_castC++提供了dynamic_cast来实现运行时的类型转换,但是如果用来转换指针时,需要记得检查返回值(这

2012-03-02 13:28:07 383

转载 Boost智能指针——scoped_ptr

boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include#include#includeclass implementation{public:    ~implementation() { std::cout "de

2012-03-02 13:19:56 445

转载 Boost智能指针——shared_ptr

boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include#include#includeclass implementation{public:

2012-03-02 13:13:44 746

转载 boost::share_ptr智能指针使用示例

http://ticktick.blog.51cto.com/823160/196765最近项目中使用boost库的智能指针,感觉智能指针还是蛮强大的,在此贴出自己学习过程中编写的测试代码,以供其他想了解boost智能指针的朋友参考,有讲得不正确之处欢迎指出讨论。当然,使用boost智能指针首先要编译boost库,具体方法可以网上查询,在此不再赘述。        智能指针

2012-03-02 13:03:11 2729 1

转载 Boost智能指针——weak_ptr

Boost智能指针——weak_ptr循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include#include#includeclass parent;class children;typedef boost::shared_ptr parent_ptr;

2012-03-02 13:02:01 422

转载 C++ 虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2012-02-21 10:03:19 303

转载 Linux中DD命令详解

Linux中DD命令详解1.dd命令简介        功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件

2012-02-16 17:17:08 648

转载 linux mkfs tune2fs fsck命令

mkfs.ext3 是最常用的命令之后. 跟他同一效果的命令是mkfs -t ext3  都将会把指定分区格式化为ext3格式。 执行此命令之后,请确定你要格式化的分区已经没有重要数据,否则不要轻易执行它。 ext3文件系统是linux下最常用的文件系统格式,比ext2多了日志记录功能,牺牲了一点空间利用率,换来了数据的安全.   命令使用,比如我们用fdisk /

2012-02-16 15:54:10 1771

空空如也

空空如也

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

TA关注的人

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