页面装载中...

Archive for the ‘程序设计’ Category

[算法] 分治策略:快速排序

先引用维基上的一个图,它很形象地展示了快速排序的整个过程:

快速排序的原理可参考上面的链接或任意一本算法教材,让我来讲也讲不清楚,我也是花好久才彻底看明白(基础太差了,汗),所以就贴贴代码好了,有人会说了,快排的代码网上多得很,还要你来贴干嘛。因为这些代码是我看着《算法基础》这本书上的原理和图自己琢磨出来的(完工后发现跟别人的代码惊人地雷同,汗汗汗),只有递归的终止条件那里参考了一下现成的代码,留下来当作笔记吧。
阅读全文 - 666 字

我的答案:浙大ACM#1350(The Drunk Jailer)

题目地址

A certain prison contains a long hall of n cells, each right next to each other. Each cell has a prisoner in it, and each cell is locked.
阅读全文 - 2250 字

Google C++ 编程风格指南(1):头文件(2)

Google C++ 编程风格指南(1):头文件(2)

-inl.h 文件
阅读全文 - 1391 字

Google C++ 编程风格指南(1):头文件(1)

Google C++ 编程风格指南(1):头文件(1)

#define 保护
阅读全文 - 1502 字

Google C++ 编程风格指南(0):背景

Google C++ 编程风格指南(0):背景
C++ is the main development language used by many of Google's open-source projects. As every C++ programmer knows, the language has many powerful features, but this power brings with it complexity, which in turn can make code more bug-prone and harder to read and maintain.
C++ 是 Google 很多开源项目使用的主要开发语言。如每个 C++ 程序员知道的,这门语言拥有很多强大的特性,但强大也使之复杂,造成的负面影响是代码更易产生 bug、更难读和维护。
阅读全文 - 2316 字

[译文]Protocol Buffers:Google 的数据交换格式

原文地址:Protocol Buffers: Google's Data Interchange Format
本文地址:http://hellobmw.com/archives/protocol-buffers-googles-data.html
由 北极冰仔 翻译,转载请以超级链接的形式注明本文地址。
阅读全文 - 1337 字

Protocol Buffers 性能测试

昨天大致介绍了下 Protocol Buffers,由于时间关系没能做性能测试,今天上午补上,给 Protocol Buffers 做一个性能测试。
声明:转载请务必以超级链接的形式注明本文地址(http://hellobmw.com/archives/protocol-buffers-performance.html)。
细节就不讲了,测试程序是在电话本基础上改的,往一个 AddressBook 中插入 100000 条 Person 联系人记录,每个联系人有 1 个整型的 ID,1 个 std::string 型名称,还有 10 个 std::string 型电话号码。分别使用 debug 版本、release 版本、Protocol Buffers 速度优化模式(参见 Getting More Speed 部分)的 release 版本进行测试,每次测试前将之前生成的 addressbook 文件删除。
阅读全文 - 709 字

第一个 Protocol Buffers 小程序:电话本

晚上刚写了一篇《Protocol Buffers 简介》,然后就开始动手实战试用一下 Protocol Buffers 这个 Google 出品的东东。
首先从 Protocol Buffers 的主页上把源码下回来,注意是源码,那个 Win32 包不必下,它里面只有一个编译好的 protoc.exe,没有开发所必须的库,光有那个 Protocol Buffers 编译器是没用。
将源码解压出来以后,直接到 vsprojects 目录下用 Visual Studio 2005(其它版本我没有试)打开解决方案文件 protobuf.sln 开始编译。编译成功结束后会在解决方案目录下生成一个 google 目录,里面是单元测试的程序;另外就是 Debug 目录和 Release 目录了,生成的对应版本的 .lib 和 .dll 还有 protoc.exe 编译器全在里面。
阅读全文 - 2102 字

Protocol Buffers 简介

Google 于昨日公布了它自己使用的结构化数据存储描述语言 Protocol Buffers,大致地看了下它的文档,可以将 Protocol Buffers 的特点归纳如下:
Protocol Buffers 是一种可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
只需使用 Protocol Buffers 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。
阅读全文 - 755 字

C++虚函数详解

这篇文章基本上可以回答你对 C++ “虚函数”的所有问题,翻译很浪费时间,能读懂英文的直接看原文吧,如果确实有必要再翻译。
C++ FAQ Lite - Inheritance -- virtual functions
------ 分割一下 ------
阅读全文 - 163 字

C++私有继承和保护继承

声明:如需转载请使用超级链接注明本文地址(http://hellobmw.com/archives/cplusplus-private-and-protected-inheritance.html)及英文原文地址(http://www.parashift.com/c++-faq-lite/private-inheritance.html)。
本文目录

阅读全文 - 1618 字

搭建基于Carbide.c++的Symbian开发环境的几点注意事项

貌似我写这类的文章总是没几个人看,简洁点,给自己备忘。

搭建基于 Carbide.c++ 的 Symbian 开发环境的几点注意事项:
阅读全文 - 473 字

使用Event同步线程的小例子

在多线程编程中,有时候我们需要一个函数调用不是立即返回,而是在等待某个线程结束后再返回。要达到这个目的有很多种方法,这篇日志我只说一下使用 Event 的方法。
看一个小例子,在 main 函数中创建一个线程计算 1, 2, 3, ..., 100 的和并打印结果——由于这个计算的执行时间实在太短,所以让线程休眠 2 秒钟虚拟一个更加耗时的计算过程——等待线程结束后 main 函数返回。
源代码如下:
阅读全文 - 336 字

我的答案:北大ACM#1007(DNA Sorting)

好久没做 ACM 了,昨晚又跑到北大的上面做了一题(没敢去浙大的,ZOJ 的判定比北大严格得多),题目就不抄了,自己去看吧, 1007 - DNA Sorting。
下面我把自己的答案贴出来,说实话我这个代码非常烂,虽然 Accepted,但占用内存 300K,耗时 375 MS,代码长度 2261B,跟排在前面的高手的解决方法完全不能比——第 1 名:占用内存 4K,耗时 0 MS,代码长度 847B……第 20 名,占用内存 12K,耗时 0 MS,代码长度 554B——可能是我写的代码太过于 C++ 了,不仅有类,还用了模板,相当依赖 STL。如果有高手看到我这个帖子,希望能多多指教。
阅读全文 - 1521 字