自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

boost.bind 如何 bind continue.1

我们先定义目标:1. simple_bind 提供与 bind 类似的界面,可以只考虑通过对象引用(或者值)调用成员函数的情况,而不考虑 free function 或者通过指针调用等等。具体地说,就是允许person.SetName("Ralph") --> simple_bind(&Person::SetName, person,_1)(string("Ralph")...

2005-10-27 00:58:00 73

boost.bind 如何 bind

Boost.bind好用么?当然好用,而且它也确定进入下一代的 C++ 标准了,也早就进了 TR1 了。回顾一下,它允许我们干这个:#include <algorithm>#include <iostream>#include <string>#include <vector>#include <boost/bind.hpp...

2005-10-26 08:40:00 111

智能指针的另外用途:optional value 手法

有些时候我们希望一个类成员除了自己的值以外,还能有一个“未被初始化”的状态,例如在一个 Server 里面,我们需要管理 user 数量:class Server{//... int userCount_;//...};userCount_ 当然是初始化为0,但是有时候并不如此简单,很多资源可能是在第一个 user 使用的时候被分配的,而回收资源的时候,如果仅仅看到 userCount_ 为0,我...

2005-10-19 12:20:00 108

简单常识——关于 STL 算法

distance很多时候我们希望在一个 vector ,或者 list ,或者什么其他东西里面,找到一个值在哪个位置,这个时候 find 帮不上忙,而有人就转而求助手写循环了,而且是原始的手写循环:for ( int i = 0; i < vect.size(); ++i) if ( vect[i] == value ) break;如果编译器把 i 看作 for scope 的一部分,你还...

2005-10-17 21:21:00 111

Expression Template

如果在 C++ 里面评选称得上是“魔法”的技术,Expression Template (ET,酷吧?) 当之无愧要成为其中一员。如果要求两个数组的内积,该怎么做? int a[4] = {1,100,0,-1}; int b[4] = {2,2,2,2}; 手写循环就不说了,STL 算法是这样: inner_product(a, a + 4, b, 0);不错,但是有个问题。STL 算法本质上还...

2005-10-17 06:25:00 159

简单常识——关于string

toupper, tolower地球人都知道 C++ 的 string 没有 toupper ,好在这不是个大问题,因为我们有 STL 算法:string s("heLLo");transform(s.begin(), s.end(), s.begin(), toupper);cout << s << endl;transform(s.begin(), s.end(), s...

2005-10-16 15:24:00 362

某公司的一道机考题的解答

昨天看到某个公司招聘出的一道题目,题目是这样的:判断任意三个点是否构成三角形,以及某个点是否位于指定的三角形内。 关于这个问题,我给出了自己的答案,首先解决第一个问题: ///<summary>///IsTriangle判断集合中的头三个点PointF是否可以构成一个三角形///</summary>publicstaticboolIsTriangle(ArrayList...

2005-10-16 11:01:00 118

Traits

Traits Use of traits is anothercommon programming techniquein conjunction with template programming. A traits class is ashadowclass that accompanies ...

2005-10-16 03:59:00 83

Template Metaprogramming - cont.1

MPL 是一个非常聪明的作品,在发挥 C++ 模板威力这方面登峰造极,而其接口的优雅、设计的一致性和思想的完整性让 Loki 这样类似的作品也相形见绌。废话少说,我们上代码。#include <string>#include <iostream>#include <boost/mpl/list.hpp>#include <boost/mpl/find.hp...

2005-10-15 21:29:00 86

Template Metaprogramming

1. 何谓 Metaprogramming?Metaprogram: program that manipulates another program.Metaprogramming is not a new concept:Compiler is a metaprogram: manipulates your code and produces code in a lower level...

2005-10-15 18:24:00 159

模板元编程 --- 用 MPL 解决实际问题

在 STL 中有各种容器,而 STL 算法允许我们对容器中的元素做各种操作,下面的程序对于每一个当代的 C++ 程序员都应该是轻而易举的:#include <iostream>#include <list>#include <algorithm>#include <string>using namespace std;struct print{ vo...

2005-10-15 15:26:00 307

凤凰涅磐 --- Phoenix 2 发布预览

首先,对于不熟悉 Phoenix 的读者,先介绍一下 Phoenix 是什么。Phoenix 的作者,Joel de Guzman,也就是 Boost.Spirit 的作者,在看到许多往 C++ 中引入 Functional Programming 的努力以后,决定把 Spirit 优雅的设计思想用于建立一个 C++ 的 Functional Programming 库,这就是 Phoenix 了...

2005-10-14 14:51:00 184

简单常识——关于stream

从文件中读入一行简单,这样就行了:ifstream ifs("input.txt");char buf[1000];ifs.getline(buf, sizeof buf);string input(buf);当然,这样没有错,但是包含不必要的繁琐和拷贝,况且,如果一行超过1000个字符,就必须用一个循环和更麻烦的缓冲管理。下面这样岂不是更简单?string input;input.re...

2005-10-12 14:45:00 270

空空如也

空空如也

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

TA关注的人

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