Feeds:
文章
留言

Archive for 三月 13th, 2007


MSN SpaceGoogle DocGoogle Blog
Chui-Wen Chiu(Arick)
2007.03.13 建立

本文主要示範 STL 中的 ptr_fun, mem_fun 和 mem_fun_ref  如何與 STL 演算法搭配使用。ptr_fun 能夠將一般函式當作仿函式使用,mem_fun 和 mem_fun_ref 用於成員函式指標。下面是針對這三個 Adapter 的範例程式:

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>

using namespace std;

class Shape{
public:
    virtual void display()=0;
    virtual ~Shape(){
        cout << "Overn";
    }
};

class Rect: public Shape{
public:
    virtual void display(){
        cout << "Rect" << endl;
    }
};

class Circle: public Shape{
public:
    virtual void display(){
        cout << "Circle" << endl;
    }
};

class Square: public Shape{
public:
    virtual void display(){
        cout << "Square" << endl;
    }
};

typedef Shape* PShape;

void Delete(PShape ps){
    delete ps;
}

int _tmain(int argc, _TCHAR* argv[])
{
    vector<PShape> v;
    v.push_back(new Rect());
    v.push_back(new Circle());
    v.push_back(new Square());

    cout << "mem_fun" << endl;
    for_each(v.begin(), v.end(), mem_fun(&Shape::display));

    cout << "ptr_fun" << endl;
    for_each(v.begin(), v.end(), ptr_fun(&Delete));

    cout << "mem_func_ref" << endl;
    vector<Rect> v2;
    v2.push_back(Rect());
    v2.push_back(Rect());
    v2.push_back(Rect());
    for_each(v2.begin(), v2.end(), mem_fun_ref(&Rect::display));

    cin.get();
    return 0;
}

透過這些 Adapter 我們可以很順利的將一般函式和成員函式用於 STL 演算法中。

Read Full Post »

只要先在設定將與系切換成 English(US) ,就可以在 Setting | Accounts | Get mail from other accounts 設定外部信箱

真是太 Cool 了,如果對於英文介面不甚熟悉的使用者,可以參考"Gmail + Hinet:信箱起死回生術",內有詳細的設定說明~

不過限制只能設定五組外部帳號

Read Full Post »