您的位置: 旅游網(wǎng) > 影視 >> 海報(bào)

    我如何寫這個(gè)非常簡(jiǎn)單的程序呢

    發(fā)布時(shí)間:2021-10-26 07:15:06

    Bjarne Stroustrup博士,1950年出生于丹麥,先后畢業(yè)于丹麥阿魯斯大學(xué)和英國(guó)劍撟大學(xué),ATT大規(guī)模程序設(shè)計(jì)研究部門負(fù)責(zé)人,ATT 貝爾實(shí)驗(yàn)室和ACM成員。1979年,B. S開(kāi)始開(kāi)發(fā)一種語(yǔ)言,當(dāng)時(shí)稱為\"C with Class\",后來(lái)演化為C++。1998年,ANSI/ISO C++標(biāo)準(zhǔn)建立,同年,B. S推出其經(jīng)典著作The C++ Programming Language的第三版。

    我常常收到許多關(guān)于編寫一個(gè)非常簡(jiǎn)單的程序的詢問(wèn)。這個(gè)問(wèn)題有一個(gè)很具代表性的解決方法,那就是(在你的程序中)讀入幾個(gè)數(shù)字,對(duì)它們做一些處理,再把結(jié)果輸出。下面是一個(gè)這樣做的例子:

    #includeiostream

    #includevector

    #includealgorithm

    using namespace std;

    int main()

    {

    vectordouble v;

    double d;

    while(cind) sh_back(d); // 讀入元素

    if (!f()) { // 檢查輸入是否出錯(cuò)

    cerr \"format error\\n\";

    return 1; // 返回一個(gè)錯(cuò)誤

    }

    cout \"read \" ze() \" elements\\n\";

    reverse(gin(),d());

    cout \"elements in reverse order:\\n\";

    for (int i = 0; ze(); ++i) cout v[i] ’\\n’;

    return 0; // 成功返回

    }

    對(duì)這段程序的觀察:

    這是一段標(biāo)準(zhǔn)的ISO C++程序,使用了標(biāo)準(zhǔn)庫(kù)(standard library)。標(biāo)準(zhǔn)庫(kù)工具在命名空間std中聲明,封裝在沒(méi)有.h后綴的頭文件中。

    如果你要在Windows下編譯它,你需要將它編譯成一個(gè)“控制臺(tái)程序”(console application)。記得將源文件加上.cpp后綴,否則編譯器可能會(huì)以為它是一段C代碼而不是C++。

    是的,main()函數(shù)返回一個(gè)int值。

    讀到一個(gè)標(biāo)準(zhǔn)的向量(vector)中,可以避免在隨意確定大小的緩沖中溢出的錯(cuò)誤。讀到一個(gè)數(shù)組(array)中,而不產(chǎn)生“簡(jiǎn)單錯(cuò)誤”(silly error),這已經(jīng)超出了一個(gè)新手的能力——如果你做到了,那你已經(jīng)不是一個(gè)新手了。如果你對(duì)此表示懷疑,我建議你閱讀我的文章“將標(biāo)準(zhǔn)C++作為一種新的語(yǔ)言來(lái)學(xué)習(xí)”(\"Learning Standard C++ as a New Language\"),你可以在本人著作列表(my publications list)中下載到它。

    !f()是對(duì)流的格式的檢查。事實(shí)上,它檢查循環(huán)是否終結(jié)于發(fā)現(xiàn)一個(gè)end-of-file(如果不是這樣,那么意味著輸入沒(méi)有按照給定的格式)。更多的說(shuō)明,請(qǐng)參見(jiàn)你的C++教科書中的“流狀態(tài)”(stream state)部分。

    vector知道它自己的大小,因此我不需要計(jì)算元素的數(shù)量。

    這段程序沒(méi)有包含顯式的內(nèi)存管理。Vector維護(hù)一個(gè)內(nèi)存中的棧,以存放它的元素。當(dāng)一個(gè)vector需要更多的內(nèi)存時(shí),它會(huì)分配一些;當(dāng)它不再生存時(shí),它會(huì)釋放內(nèi)存。于是,使用者不需要再關(guān)心vector中元素的內(nèi)存分配和釋放問(wèn)題。

    程序在遇到輸入一個(gè)“end-of-file”時(shí)結(jié)束。如果你在UNIX平臺(tái)下運(yùn)行它,“end-of-file”等于鍵盤上的Ctrl+D。如果你在Windows平臺(tái)下,那么由于一個(gè)BUG它無(wú)法辨別“end-of-file”字符,你可能傾向于使用下面這個(gè)稍稍復(fù)雜些的版本,它使用一個(gè)詞“end”來(lái)表示輸入已經(jīng)結(jié)束。

    #includeiostream

    #includevector

    #includealgorithm

    #includestring

    using namespace std;

    int main()

    {

    vectordouble v;

    double d;

    while(cind) sh_back(d); // 讀入一個(gè)元素

    if (!f()) { // 檢查輸入是否失敗

    ear(); // 清除錯(cuò)誤狀態(tài)

    string s;

    cin s; // 查找結(jié)束字符

    if (s != \"end\") {

    cerr \"format error\\n\";

    return 1; // 返回錯(cuò)誤

    }

    }

    是人類存在的希冀 cout \"read \" ze() \" elements\\n\";

    reverse(gin(),d());

    cout \"elements in reverse order:\\n\";

    for (int i = 0; ze(); ++i) cout v[i] ’\\n’;

    return 0; // 成功返回

    }

    更多的關(guān)于使用標(biāo)準(zhǔn)庫(kù)將事情簡(jiǎn)化的例子,請(qǐng)參見(jiàn)《C++程序設(shè)計(jì)語(yǔ)言》中的“漫游標(biāo)準(zhǔn)庫(kù)”(\"Tour of the Standard Library\")一章。

    查看本文來(lái)源

    長(zhǎng)沙醫(yī)院哪男科好
    肺炎
    西安醫(yī)院婦科哪好
    猜你會(huì)喜歡的
    猜你會(huì)喜歡的
    主站蜘蛛池模板: 肌肌对肌肤肤30分钟软件大全免费| 一区二区视频在线播放| 熟女精品视频一区二区三区| 国产亚洲色婷婷久久99精品| 8x国产在线观看| 性满足久久久久久久久| 久草资源站在线| 波多野结衣同性系列698 | 久久精品国产亚洲AV蜜臀色欲 | 精品视频久久久| 国产破处在线视频| jlzz大全高潮多水老师| 日日碰狠狠添天天爽不卡| 亚洲一线产区二线产区精华| 特级西西人体444WWw高清大胆| 国产99视频在线| 日本精品www色| 在公车上忘穿内裤嗯啊色h文| 两腿之间的私密图片| 日本黄页网站免费| 亚洲人成在线影院| 波多野结衣作品大全| 午夜精品一区二区三区在线观看| 黄瓜视频有直播的不| 国产精品无码久久四虎| www.午夜视频| 成年人性生活视频| 久久国产精品免费一区二区三区 | 特黄黄三级视频在线观看| 国产69精品久久久久9999apgf| 国产福利兔女郎在线观看| 国产精品自在线拍国产手青青机版 | 一本精品99久久精品77| 日本大胆欧美人术艺术| 亚洲丶国产丶欧美一区二区三区| 波多野结衣中文一区二区免费| 午夜电影免费观看| 色综合综合色综合色综合| 国产婷婷色一区二区三区| 浮力影院亚洲国产第一页| 国产高清在线免费|