青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 58,  comments - 75,  trackbacks - 0
看看今天的奧運概念股和北京概念股的漲勢。都是靠前的。今年8月8日才開始的奧運,在股市中現在就開始了。再看看這些股在前期的準備,就可知,開始的時間更早了。今年股市會圍繞奧運展開嗎?要留意拉。想想在這個大事下,有多少消費會被迸發出來,有哪些概念會讓人感興趣,有什么行業會收益呢,他們會在什么時候會一一表現出來呢?
posted @ 2008-01-02 15:47 walkspeed 閱讀(512) | 評論 (0)編輯 收藏
    對于程序開發,解依賴是很重要的。設計時要考慮到程序中有那些依賴關系,如何將他們解開。解依賴并不是說將這些依賴關系打斷,不要依賴了。而是接觸對實現的依賴。當一個模塊的實現變了,它的變化不會對這個模塊有依賴的模塊產生大的影響,這就是解依賴了。
    解依賴有利于大規模的程序開發。大規模的開發,一個軟件被分成了很多的模塊,解依賴后,這些模塊才可能單獨開發,對某模塊有深入了解的人才能更關注與這個模塊的開發。大家在交流是關注與依賴的交互,而不是實現的細節,有利于在更高層次上討論問題。
    解依賴有利于程序的修改和升級。
    解依賴有利于模塊測試,集成測試。
    解依賴有利于開發庫的形成。

    解依賴中有兩個總要的概念。模塊和接口。模塊的規模可大可小。大的模塊可以是一個庫,甚至是一個軟件,小的模塊是一個函數,或一個成員。模塊的目的是將一個確定的功能包裝起來,向外提供一個統一的訪問接口。接口是一種聲明,表示某個模塊有那些能力。

posted @ 2007-12-29 09:50 walkspeed 閱讀(1332) | 評論 (3)編輯 收藏
頭文件 regex.hpp

常用的類
boost::regex 正則表達式

boost::cmatch 以char數組為容器,存儲匹配返回值。
boost::smatch 以std::string為容器,存儲匹配返回值。

boost::regex_match 匹配算法
boost::regex_search 查找算法
boost::regex_replace 替換算法

簡單例子

#include <iostream>

#include <boost/regex.hpp>

int main( int argc, char* argv[] )
{
    char *buf = "This is boost::regex example";

    boost::regex exampleregex( "boost::regex" );
    boost::cmatch result;

    if( boost::regex_search( buf, result, exampleregex ) )
    {
        std::cout << result.str() << std::endl;
    }

    return 0;
}

注意regex.hpp的包含。要在開發工具中設置boost頭文件所在位子。


posted @ 2007-12-28 14:01 walkspeed 閱讀(9549) | 評論 (0)編輯 收藏
瑞銀事件好像讓大家知道了中石油為何表現如此。同時也告訴大家中石油是個好股票,只是
被人操縱了,才變成這樣。而問題又回來了,我們該買中石油嗎?

我想應該沒有什么別的答案吧,買,一定要買。
看看中石化,神化都是什么價格。中石油就不應該實在這個價格。

他壟斷。在這個關乎國家、民族根本利益的行業里,在可預期的時間里還是壟斷。壟斷就有
壟斷的利潤。

他是能源。石油是工業社會的血液,想一想吧。中國在加速工業化的過程,能少了石油嗎。
新能源在現在這個能源消費體系里還是很少以部分(還是可憐的少),作為概念是沒有問題
可是從市場的角度,他們還沒有到動搖石油的底部。要不然美國不用打伊拉克啦。

他也是資產。每個國家都要儲備他,想黃金一樣,要儲備來穩定市場。

買它,一定要買。

什么時候買。看自己啦。
posted @ 2007-12-28 13:15 walkspeed 閱讀(618) | 評論 (0)編輯 收藏
    要在分布式系統中找到一個對象,甚至是對象的某個實例,我們必須給他們一個唯一標識。
    可以領用UUID來生成我們需要的唯一標識。但是在snmp中并沒有選著UUID來標識每個對象,而是使用
了自己設計的Oid。這是為何呢?本人認為,UUID雖可以唯一表示對象及其實例,但是UUID之間沒有什么
關系,不能形成一種結構來表示對象之間的關系。而Oid的顯現卻能滿足以上兩點,唯一表示對象和顯示
對象之間的結構,甚至是對象的實例的唯一標識和實例之間的關系。
    這也給我們一個啟示,分布式系統中對象的標識除了具有唯一性外,要有一定顯示對象之間關系的能
力,會更好。
posted @ 2007-08-31 14:01 walkspeed 閱讀(2625) | 評論 (1)編輯 收藏
     摘要: 接口的使用者不應該在使用完接口后直接銷毀接口,而應該將接口返還給接口提供者。接口提供者來管理接口的聲明周期。  閱讀全文
posted @ 2007-08-07 09:49 walkspeed 閱讀(1903) | 評論 (1)編輯 收藏
當我們使用函數時習慣于C函數的格式,即如下形式
resulttype funname( arglist );
返回值類型 函數名( 參數列表 );

在Boost.Function中,我們可以方便的定義定義函數對象。不過在定義用來表示類成員函數的函數對象時
第一個參數是類指針。而且在調用時,要傳入一個類實例的指針。這樣用起來并不是很方便,因為調用者
要知道類實例。這實際上沒有實現解耦。而解耦是我們使用回調或委托設計的一個目標。

為了解決這個問題,我們要使用Boost.Bind庫

Boost.Bind是一個函數對象工廠。他用來產生我們需要的函數對象。好了,有了它,你可以在你設計中大
量使用Boost.Function。不用再去定義類成員函數形式的函數對象啦,只用定義普通函數對象。

一個簡單的例子

class CExample
{
public:
    bool printstr( const std::string &str )
    {
        std::cout << "CExample::printstr" << str << std::endl;
        return true;
    }
};

//定義一個函數對象
boost::function< bool ( const std::string& ) > printstr;

//用Boost.Bind創建一個函數對象,賦給printstr
CExample example;
printstr = boost::bind( &CExample::printstr, &example, _1 );

好了,我們創建了一個函數對象,而且調用時不再需要類實例拉。用Boost.Function和Boost.Bind大大
的簡化了Command模式的實現。

在上面的例子中要個古怪的對象"_1"。這個叫做站位符,他代表這個位置有個參數,但現在還不知道參
數是什么。_1代表參數列表中的第一個位置上的參數。Boost.Bind一共定義了9個站位符對象。如下
_1,_2,_3,_4,_5,_6,_7,_8,_9。分別代表參數列表中位子。

Boost.Bind產生的函數對象可以直接使用,利用上面的例子。

bool b = boost::bind( &CExample::printstr, &example, _1 )( "Hello World" );


posted @ 2007-07-20 17:15 walkspeed 閱讀(12940) | 評論 (3)編輯 收藏
Boost.Function庫用來提供一個對象化的函數指針。

函數指針對設計很有用。它使調用者可以延期調用,調用時機由調用者確定。而且可以改變
響應者,以應對不同的要求。

C中的函數指針只能用于自由函數。在C++中除了自由函數還有函數對象和類成員函數,這些
C的函數指針是無法用的。這要求能適應C++語言的函數指針。既然C++語言本身沒有提供,
那就提供一個庫。stl提供了,但是定義了很多類型,使用起來并不是很方便,而且函數參數
的個數被限定在兩個以下,更能是備受限制。Boost.Function庫提供了一個好的解決方案。

Boost.Function庫可以支持自由函數,函數對象,類成員函數。而且參數個數多達10個。
Boost.Function庫利用模板技術來實現。生成的代碼有很高的運行效率。本庫可以不用編譯
直接使用。

Boost.Function的頭文件。
function.hpp

定義一個Boost.Function的對象(是一個返回值類型為int,第一個參數是std::string類型
第二個參數是float類新)

boost::function< int ( std::string, float ) > funptr;

上面這個定義方式是一種容易理解的定義方式。但有些編譯器不支持,如果想更多的編譯器
支持,則用下面這種定義方式

boost::function2< int, std::string, float > funptr;

注意模板中有3個類型,而function類卻是boost::function2。應為返回值類型不計算在參數
類型中(原因很簡單,C++的編譯器不會根據返回類型不同來區分函數定義的不同)。

int freefun( std::string str, float f )
{
    std::cout << str << " : " << f << std::endl;
    return 0;
}

class CFun
{
public:
    int operator() ( std::string str, float f )
    {
        std::cout << str << " : " << f << std::endl;
        return 0; 
    }
}

上面定義了一個自由函數和一個函數對象。下面將把他們付給function對象。

賦值為自由函數
funptr = &freefun;

賦值為函數對象
CFun fun;
funptr = fun;

以上兩種情況的調用方法一致,如下
funptr( "float =", 10.0 );

Boost.Function對象要能指向類型原函數,其定義要如下

class FreeClass
{
public:
    int out( std::string str, float f )
    {
        std::cout << str << " : " << f << std::endl;
        return 0; 
    }
};

boost::function< int ( FreeClass*, std::string, float ) > funptr;

跨平臺的定義方法
boost::function3< int, FreeClass*, std::string, float > funptr;

賦值方法
funptr = &FreeClass::out;

調用方法
FreeClass fc;

funptr( &fc, "float =", 10.0 );


posted @ 2007-07-18 13:28 walkspeed 閱讀(10649) | 評論 (2)編輯 收藏
領域分析--認識領域分析

軟件分析的開端一般是需求分析。但是在實踐中,發現了很多的問題。
1 用戶的需求并不是有用戶提出。在和用戶或軟件的風險承擔者交談后,會常發現,他們對自己想要的
軟件并不是很清楚,會提出一些籠統的要求。在開發出一個原型后,他們會修正或更改,甚至推翻他們
的需求。你會發現是你在不斷的提出、完善需求,用戶或風險承擔者只是在裁決你的需求。而這樣下去
你的軟件要不斷的改,好像遙遙無期。
2 需求多是一種功能的集合。軟件出來后,如果有了改動,或在新的項目中去復用以前的軟件會發現很
難。對每個需求,你不得不從頭開始。

領域分析和需求分析不同,它不是面向功能的。而是面向問題的。這有些像考試中解題。針對特定的問
題,來提供解決方案,并在這個方案的直接指導下解出題目。這個直接指導很有意義,應為直接指導表
示解題的方案將被應用到解題的過程中(即是可實現的)。

領域分析不是對要構造的軟件進行全面的分析。而是對軟件涉及到的特定的領域進行分析(如寫多媒體
軟件,你要對音視頻領域進行分析)。而領域是與特定的知識相關聯的(如音視頻領域中關于音頻、視
頻編解碼知識,領域分析要搞清楚這個領域中的知識,找出各知識點中的關系,并對它們進行抽象,形
成模型。領域分析強調的是問題域。這就是說它面對的是一個相對確定的范圍。軟件要解決的是一個相
對確定的范圍。也有利于測試軟件。

領域分析不能代替需求分析,但是可以脫離需求來對特定的領域進行分析。領域分析后產生的設計要直
接指導實現,可以映射到軟件中。由于領域分析是面對問題的,它產生的軟件不一定能滿足需求,可能
根本就對應不上需求。但是它是特定問題的解決方案,可以作為一個機制來支持需求的實現。而且特定
的問題或著說這種反應某個領域中的知識關系的軟件其對應的是一種穩定的需求,比較容易復用、測試
和發展。

面對需求分析得到是一種應用的要求。而根據軟件涉及的領域進行分析,得到的是它的基本機制。應用
是多樣的,而機制其實就只有那么幾個。根據應用的要求來組合這些機制。這樣需求的變化,并不會去
過多的沖擊你通過領域分析得到的模型和實現。你要做的是對他們進行組合。
posted @ 2007-07-11 15:54 walkspeed 閱讀(2813) | 評論 (3)編輯 收藏
    new出來的空間如果沒有主動銷毀,在程序退出時仍可能有內存的泄露。
操作系統描述到,在進程退出時會銷毀它所使用的所有內存空間,但這只是
一個模型上的構想和描述。在實際的操作系統的實現上并不能做到這一點。
因為,要實現在進程退出時銷毀它所使用的內存空間,就要給每個被使用的
內存空間打一個標,表示這段內存空間被那個進程使用。在這種情況下,如
果有多個使用小內存量的進程,并且被頻繁的創建和銷毀,那么光記住那些
進程標致就要占用很大的內存空間,這是一個很不劃算的方案。所以在實際
中,操作系統并沒有給每個進程使用的內存空間打標。這樣,有些小內存是
沒有被回收的,如果多次開關這個程序就會發現,有內存被大量的占用,而
不能被釋放。
    所以那些在程序中只有一個實例,并且是被new出來的對象,也應該主動
的去手動銷毀,而不能依賴程序退出時由系統銷毀。

    被new出來的對象其銷毀是兩個步驟。
    1 析構對象。條用對象的析構函數,將對象占用的資源釋放掉。
    2 釋放內存。將對象所占用的內存釋放掉。
    
    如果new出來的對象沒有被銷毀,會造成連個層面上的泄露。
    1 對象泄露。他會造成背對象占用的資源也沒有銷毀或釋放。比如在對象
中占有文件的句柄,在析構時才釋放。如果對象泄露了,這個句柄是不會被釋
放的。那個文件會一直被占用。如果文件打開時是獨占的,那么及時對象所在
的程序退出了,別的程序也別想訪問這個文件。
    2 內存泄露。所占用的內存不能被釋放。

posted @ 2007-05-31 10:50 walkspeed 閱讀(2743) | 評論 (5)編輯 收藏
僅列出標題  下一頁

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(4)

隨筆分類(64)

隨筆檔案(58)

文章分類(3)

文章檔案(3)

相冊

收藏夾(9)

C++零碎

好友

搜索

  •  

積分與排名

  • 積分 - 162389
  • 排名 - 163

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜久久久久久久久电影院| 欧美淫片网站| 亚洲美女免费精品视频在线观看| 黄色成人免费网站| 韩国一区二区三区美女美女秀| 国产欧美一二三区| 国产噜噜噜噜噜久久久久久久久| 国产精品久久久久婷婷| 国产日韩一区二区三区在线播放| 亚洲毛片在线| 国语精品中文字幕| 亚洲大胆人体视频| 99re6热在线精品视频播放速度| 一区二区高清在线| 久久精彩视频| 欧美成人午夜视频| 一区二区欧美激情| 久久国产精品久久国产精品| 欧美高清在线视频观看不卡| 欧美视频一区二区三区四区| 国产手机视频一区二区| 亚洲激情女人| 欧美在线一二三区| 亚洲精品在线观| 久久久欧美一区二区| 欧美视频日韩视频| 尹人成人综合网| 一区二区激情| 美女图片一区二区| 亚洲一区日本| 一本大道久久a久久精二百| 久久av一区二区三区| 欧美黄色aa电影| 激情综合色综合久久| 午夜精品国产精品大乳美女| 亚洲福利视频专区| 一个色综合导航| 免费视频亚洲| 国内成人精品2018免费看 | 亚洲人成在线观看| 亚洲自拍偷拍福利| 欧美日韩亚洲一区二区三区四区| 国产又爽又黄的激情精品视频| 中文国产成人精品久久一| 免费在线欧美黄色| 欧美一区二区三区四区在线观看| 亚洲高清毛片| 亚洲国产欧美一区| 久久免费国产精品1| 亚洲性夜色噜噜噜7777| 欧美揉bbbbb揉bbbbb| av成人福利| 亚洲另类自拍| 欧美日韩国产综合视频在线观看 | 亚洲一区二区欧美日韩| 亚洲人成毛片在线播放女女| 欧美成人午夜剧场免费观看| 狠狠色噜噜狠狠色综合久| 久久aⅴ国产紧身牛仔裤| 亚洲视屏在线播放| 欧美三级精品| 亚洲欧美视频在线观看| 亚洲宅男天堂在线观看无病毒| 国产精品激情电影| 欧美亚洲视频| 欧美专区在线观看| 亚洲国产99| 亚洲精品国产精品国产自| 欧美精品在线网站| 在线中文字幕一区| 亚洲视频网站在线观看| 国产美女精品在线| 久久视频在线看| 久久免费高清| 亚洲精品乱码视频| 99re66热这里只有精品4| 国产精品国产自产拍高清av王其 | 亚洲一区国产| 欧美激情精品久久久久| 久久久久久电影| 狠狠色狠色综合曰曰| 免费黄网站欧美| 欧美高清在线观看| 亚洲欧美第一页| 香港成人在线视频| 亚洲福利av| 亚洲精品欧美日韩| 国产免费一区二区三区香蕉精| 麻豆精品一区二区av白丝在线| 欧美大片va欧美在线播放| 亚洲综合视频在线| 久久久久国内| 亚洲一区视频在线| 久久国产婷婷国产香蕉| 欧美一区二区在线视频| 亚洲一区欧美| 亚洲黄色一区二区三区| 亚洲一区免费| 亚洲精品在线免费观看视频| 欧美一区二区三区在线观看视频| 国产一区二区日韩精品| 亚洲国产欧美一区| 国产精品手机视频| 欧美jizzhd精品欧美巨大免费| 欧美三级在线播放| 欧美激情免费在线| 国产欧美日韩综合一区在线观看 | 欧美不卡视频一区发布| 欧美视频专区一二在线观看| 欧美成人精品h版在线观看| 国产精品久久久久久久久久久久久久| 久久综合九色综合欧美狠狠| 国产精品国产一区二区| 亚洲国产欧美一区二区三区丁香婷| 国产喷白浆一区二区三区| 亚洲国产视频一区二区| 一区二区亚洲精品| 亚洲欧洲av一区二区| 在线亚洲激情| 欧美巨乳在线| 欧美激情精品久久久久| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲视频专区在线| 亚洲淫片在线视频| 欧美激情第10页| 亚洲黄色免费电影| 亚洲欧洲三级电影| 久久一区二区三区国产精品 | 亚洲黄色免费电影| 在线色欧美三级视频| 欧美一级免费视频| 欧美一区二区视频在线| 国产精品乱码一区二区三区| 一区二区三区精品久久久| 99这里只有久久精品视频| 欧美电影免费网站| 亚洲国产精品成人久久综合一区| 亚洲高清在线观看一区| 巨乳诱惑日韩免费av| 狂野欧美性猛交xxxx巴西| 国产一区二区高清不卡| 欧美在线视频日韩| 免费视频最近日韩| 亚洲伦理一区| 欧美片在线播放| 99精品欧美一区二区三区 | 亚洲一区在线播放| 国产精品乱人伦一区二区| 亚洲一区二区三区在线| 欧美一进一出视频| 国产日韩综合一区二区性色av| 性欧美xxxx大乳国产app| 久久久精品国产一区二区三区 | 亚洲午夜国产成人av电影男同| 欧美福利视频一区| 欧美亚洲视频一区二区| 免费亚洲一区二区| 亚洲精品免费在线观看| 久久不射中文字幕| 欧美 日韩 国产一区二区在线视频| 亚洲狠狠丁香婷婷综合久久久| 欧美成黄导航| 亚洲一区日本| 久久只精品国产| 日韩午夜在线播放| 国产精品人成在线观看免费| 久久久精品日韩欧美| 亚洲欧洲在线免费| 亚洲在线视频网站| 亚洲第一天堂无码专区| 欧美日韩国产探花| 性久久久久久久| 亚洲日本成人| 久久夜色精品国产欧美乱极品| 亚洲精品日韩在线观看| 欧美视频在线一区二区三区| 久久久国产成人精品| 夜夜嗨av一区二区三区免费区| 久久乐国产精品| 亚洲一区二区三区高清 | 亚洲线精品一区二区三区八戒| 久久精品一区四区| 亚洲一区二区三区视频播放| 亚洲第一视频| 国产一区二区精品久久| 欧美性猛交99久久久久99按摩| 久久亚洲色图| 欧美一区二区视频在线| 99v久久综合狠狠综合久久| 久久午夜电影| 久久国产色av| 小嫩嫩精品导航| 亚洲午夜久久久| 亚洲精品字幕| 亚洲高清不卡| 国产主播一区| 国产手机视频精品| 国产伦精品免费视频 | 国产一区二区激情| 欧美婷婷在线|