<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2009年5月7日

    一個找出素數(shù)的程序

    找出0到cap范圍內(nèi)的素數(shù):
    void primes(int cap)
    {
    int i, j, composite;
    for(i = 2; i < cap; ++i) {
    composite = 0;
    for(j = 2; j * j < i; ++j) {
    composite += !(i % j);
    }
    if(!composite){
    printf("%d\t", i);
    }
    }
    }
    int main()
    {
    primes(100);
    }
    

    posted @ 2009-05-31 12:03 蔣耘 閱讀(382) | 評論 (1)編輯 收藏

    struts2中獲得request response session對象(轉(zhuǎn))

         摘要: 在struts2中有兩種方式可以得到這些對象


    1、非IoC方式


    要獲得上述對象,關(guān)鍵Struts 2中com.opensymphony.xwork2.ActionContext類。我們可以通過它的靜態(tài)方法getContext()獲取當(dāng)前Action的上下文對象。有了這個對象我們想獲得其他幾個對象就好辦了
    ActionContext ctx = ActionContext.getContext();
    Map session = ctx.getSession();

    細(xì)心的朋友可以發(fā)現(xiàn)這里的session是個map對象在Struts2中底層的session都被封裝成了Map類型我們可以直接操作這個map 進(jìn)行對session的寫入和讀取操作而不用去直接操作HttpSession對象
      閱讀全文

    posted @ 2009-05-20 00:26 蔣耘 閱讀(774) | 評論 (0)編輯 收藏

    sizeof:對齊問題

    因為對齊問題使結(jié)構(gòu)體的sizeof變得比較復(fù)雜,看下面的例子:(默認(rèn)對齊方式下)

    struct s1
    {
    char a;
    double b;
    int c;
    char d; 
    };

    struct s2
    {
    char a;
    char b;
    int c;
    double d;
    };

    cout<<sizeof(s1)<<endl; // 24
    cout<<sizeof(s2)<<endl; // 16

      
    同樣是兩個char類型,一個int類型,一個double類型,但是因為對界問題,導(dǎo)致他們的大小不同。計算結(jié)構(gòu)體大小可以采用元素擺放法,我舉例子說明一下:首先,CPU判斷結(jié)構(gòu)體的對界,根據(jù)上一節(jié)的結(jié)論,s1s2的對界都取最大的元素類型,也就是double類型的對界8。然后開始擺放每個元素。
      
    對于s1,首先把a放到8的對界,假定是0,此時下一個空閑的地址是1,但是下一個元素ddouble類型,要放到8的對界上,離1最接近的地址是8了,所以d被放在了8,此時下一個空閑地址變成了16,下一個元素c的對界是416可以滿足,所以c放在了16,此時下一個空閑地址變成了20,下一個元素d需要對界1,也正好落在對界上,所以d放在了20,結(jié)構(gòu)體在地址21處結(jié)束。由于s1的大小需要是8的倍數(shù),所以21-23的空間被保留,s1的大小變成了24
      
    對于s2,首先把a放到8的對界,假定是0,此時下一個空閑地址是1,下一個元素的對界也是1,所以b擺放在1,下一個空閑地址變成了2;下一個元素c的對界是4,所以取離2最近的地址4擺放c,下一個空閑地址變成了8,下一個元素d的對界是8,所以d擺放在8,所有元素擺放完畢,結(jié)構(gòu)體在15處結(jié)束,占用總空間為16,正好是8的倍數(shù)。

      
    這里有個陷阱,對于結(jié)構(gòu)體中的結(jié)構(gòu)體成員,不要認(rèn)為它的對齊方式就是他的大小,看下面的例子:

    struct s1
    {
    char a[8];
    };

    struct s2
    {
    double d;
    };

    struct s3
    {
    s1 s;
    char a;
    };

    struct s4
    {
    s2 s;
    char a; 
    };

    cout<<sizeof(s1)<<endl; // 8
    cout<<sizeof(s2)<<endl; // 8
    cout<<sizeof(s3)<<endl; // 9
    cout<<sizeof(s4)<<endl; // 16;

      s1
    s2大小雖然都是8,但是s1的對齊方式是1s28double),所以在s3s4中才有這樣的差異。

      
    所以,在自己定義結(jié)構(gòu)體的時候,如果空間緊張的話,最好考慮對齊因素來排列結(jié)構(gòu)體里的元素。

    posted @ 2009-05-16 18:11 蔣耘 閱讀(664) | 評論 (0)編輯 收藏

    同步/異步與阻塞/非阻塞的區(qū)別(轉(zhuǎn))

         摘要: 首先來解釋同步和異步的概念,這兩個概念與消息的通知機(jī)制有關(guān).

    舉個例子,比如我去銀行辦理業(yè)務(wù),可能選擇排隊等候,也可能取一個小紙條上面有我的號碼,等到排到我這一號時由柜臺的人通知我輪到我去辦理業(yè)務(wù)了.
    前者(排隊等候)就是同步等待消息,而后者(等待別人通知)就是異步等待消息.在異步消息處理中,等待消息者(在這個例子中就是等待辦理業(yè)務(wù)的人)往往注冊一個回調(diào)機(jī)制,在所等待的事件被觸發(fā)時由觸發(fā)機(jī)制(在這里是柜臺的人)通過某種機(jī)制(在這里是寫在小紙條上的號碼)找到等待該事件的人.
    而在實際的程序中,同步消息處理就好比簡單的read/write操作,它們需要等待這兩個操作成功才能返回;而異步處理機(jī)制就是類似于select/poll之類的多路復(fù)用IO操作,當(dāng)所關(guān)注的消息被觸發(fā)時,由消息觸發(fā)機(jī)制通知觸發(fā)對消息的處理.  閱讀全文

    posted @ 2009-05-16 18:07 蔣耘 閱讀(6271) | 評論 (2)編輯 收藏

    關(guān)于VC2008下提示找不到MSVCP90D.dll的解決辦法

    Same problem MSCVP90D.dill not found,

    went to "Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"

    and set Multi-threaded Debug (/MTd)

    did build generated error messages...

    then reset

    "Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"

    to

    Multi-threaded Debug DLL (/MDd)

    posted @ 2009-05-15 22:21 蔣耘 閱讀(1094) | 評論 (0)編輯 收藏

    關(guān)于SQL 數(shù)據(jù)庫表中的聚集索引和非聚集索引等(轉(zhuǎn))

         摘要: 1.概念
    索引是在數(shù)據(jù)庫表或者視圖上創(chuàng)建的對象,目的是為了加快對表或視圖的查詢的速度(簡單理解)。
    索引是一個單獨的、物理的數(shù)據(jù)庫結(jié)構(gòu),它是某個表中一列或若干列值的集合和相應(yīng)的指向表中物理標(biāo)識這些值的數(shù)據(jù)頁的邏輯指針清單(深刻理解)。
    按照存儲方式分為:聚集與非聚集索引(需要重視和區(qū)別的概念,后面詳解)
    按照維護(hù)與管理索引角度分為:唯一索引、復(fù)合索引和系統(tǒng)自動創(chuàng)建的索引(相對簡單,如下解釋:)
    1).唯一索引:惟一索引可以確保索引列不包含重復(fù)的值.
    可以用多個列,但是索引可以確保索引列中每個值組合都是唯一的,
    即下面的姓不能有重復(fù),同時名也不能有重復(fù):
    姓 名
    李 二
      閱讀全文

    posted @ 2009-05-14 19:19 蔣耘 閱讀(1760) | 評論 (1)編輯 收藏

    數(shù)據(jù)庫的索引

         摘要: 索引

    使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),例如 employee 表的姓(lname)列。如果要按姓查找特定職員,與必須搜索表中的所有行相比,索引會幫助您更快地獲得該信息。

    索引提供指向存儲在表的指定列中的數(shù)據(jù)值的指針,然后根據(jù)您指定的排序順序?qū)@些指針排序。數(shù)據(jù)庫使用索引的方式與您使用書籍中的索引的方式很相似:它搜索索引以找到特定值,然后順指針找到包含該值的行。

    在數(shù)據(jù)庫關(guān)系圖中,您可以在選定表的“索引/鍵”屬性頁中創(chuàng)建、編輯或刪除每個索引類型。當(dāng)保存索引所附加到的表,或保存該表所在的關(guān)系圖時,索引將保存在數(shù)據(jù)庫中。有關(guān)詳細(xì)信息,請參見創(chuàng)建索引。

    注意;并非所有的數(shù)據(jù)庫都以相同的方式使用索引。有關(guān)更多信息,請參見數(shù)據(jù)庫服務(wù)器注意事項,或者查閱數(shù)據(jù)庫文檔。
    作為通用規(guī)則,只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時,才需要在表上創(chuàng)建索引。索引占用磁盤空間,并且降低添加、刪除和更新行的速度。在多數(shù)情況下,索引用于數(shù)據(jù)檢索的速度優(yōu)勢大大超過它的。  閱讀全文

    posted @ 2009-05-14 00:41 蔣耘 閱讀(282) | 評論 (0)編輯 收藏

    單向鏈表反轉(zhuǎn)(轉(zhuǎn))

         摘要: 單向鏈表反轉(zhuǎn)算法  閱讀全文

    posted @ 2009-05-12 17:51 蔣耘 閱讀(3824) | 評論 (1)編輯 收藏

    TCP/IP協(xié)議頭部結(jié)構(gòu)體(轉(zhuǎn))

         摘要: // i386 is little_endian.
    #ifndef LITTLE_ENDIAN
    #define LITTLE_ENDIAN (1) //BYTE ORDER
    #else
    #error Redefine LITTLE_ORDER
    #endif  閱讀全文

    posted @ 2009-05-12 15:37 蔣耘 閱讀(6995) | 評論 (0)編輯 收藏

    C++虛函數(shù)表解析(轉(zhuǎn))

         摘要: C++中的虛函數(shù)的作用主要是實現(xiàn)了多態(tài)的機(jī)制。關(guān)于多態(tài),簡而言之就是用父類型別的指針指向其子類的實例,然后通過父類的指針調(diào)用實際子類的成員函數(shù)。這種技術(shù)可以讓父類的指針有“多種形態(tài)”,這是一種泛型技術(shù)。所謂泛型技術(shù),說白了就是試圖使用不變的代碼來實現(xiàn)可變的算法。比如:模板技術(shù),RTTI技術(shù),虛函數(shù)技術(shù),要么是試圖做到在編譯時決議,要么試圖做到運行時決議。

    關(guān)于虛函數(shù)的使用方法,我在這里不做過多的闡述。大家可以看看相關(guān)的C++的書籍。在這篇文章中,我只想從虛函數(shù)的實現(xiàn)機(jī)制上面為大家 一個清晰的剖析。

    當(dāng)然,相同的文章在網(wǎng)上也出現(xiàn)過一些了,但我總感覺這些文章不是很容易閱讀,大段大段的代碼,沒有圖片,沒有詳細(xì)的說明,沒有比較,沒有舉一反三。不利于學(xué)習(xí)和閱讀,所以這是我想寫下這篇文章的原因。也希望大家多給我提意見。

    言歸正傳,讓我們一起進(jìn)入虛函數(shù)的世界。
      閱讀全文

    posted @ 2009-05-09 16:53 蔣耘 閱讀(288) | 評論 (0)編輯 收藏

    Unix/Linux常用信號

         摘要: Unix/Linux常用信號  閱讀全文

    posted @ 2009-05-07 00:09 蔣耘 閱讀(805) | 評論 (0)編輯 收藏

    <2009年5月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 337p日本欧洲亚洲大胆人人| 亚洲国产精品日韩在线| 国产精品亚洲AV三区| 动漫黄网站免费永久在线观看| 久久久无码精品亚洲日韩按摩| 免费一区二区三区| 亚洲AV无码专区亚洲AV伊甸园| 97无码人妻福利免费公开在线视频| 中文字幕精品亚洲无线码一区应用| 久青草国产免费观看| 亚洲日产无码中文字幕| 国产午夜不卡AV免费| 亚洲AV无码成人精品区天堂| 国产精品区免费视频| 亚洲韩国在线一卡二卡| 欧洲精品成人免费视频在线观看 | 亚洲中文字幕久久精品无码A | 国产又粗又猛又爽又黄的免费视频| 亚洲精品国产首次亮相| 国产不卡免费视频| 亚洲天堂免费在线视频| 亚洲人成亚洲人成在线观看| 久久久免费精品re6| 天堂亚洲国产中文在线| 国产一区在线观看免费| 97在线免费视频| 亚洲视频在线观看免费视频| 99视频在线精品免费观看6| 日韩亚洲翔田千里在线| 亚洲熟妇av一区二区三区漫画| 亚欧免费无码aⅴ在线观看| 亚洲一卡二卡三卡| www.亚洲一区| 美女内射无套日韩免费播放| 亚洲影院天堂中文av色| 激情综合色五月丁香六月亚洲| 在线观看www日本免费网站| 亚洲AV无码一区二区一二区| 国产亚洲精品国产| 成人黄软件网18免费下载成人黄18免费视频 | 丁香花在线视频观看免费|