


全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
針對C程序員的TopCoder C+ C+是在C語言基礎(chǔ)上添加面向?qū)ο髷U展而成。C+在提供很多傳統(tǒng)C語言沒有的優(yōu)點的同時也保持了與C語言的兼容性,這樣人們就可以在一個程序中同時使用C和C+。在比賽當(dāng)中,您必須使用一些基本的C+功能來解答問題。下面我們對熟悉C語言的程序員簡單介紹一些參加比賽必須知道的C+知識。 類和方法C+中最重要的新添加概念就是類。類可以包含方法和變量。在比賽時,您必須編寫一個包含至少一個方法的類。做為一個例子,請看下面的問題定義: 類:CellTower方法:best參數(shù):vector , int, int返回:int方法簽名:int best(vector towers, int x, int y)解答這個問題您需要創(chuàng)建一個名為CellTower的類。這個類必須含有一個名為best的方法。方法best必須有三個參數(shù)(vector, int, and int)并且返回一個整型(int)值。 類是用class關(guān)鍵字定義的。定義類和定義一個C結(jié)構(gòu)在語法結(jié)構(gòu)上類似。要定義上面那個題目所要求的類,可以使用下面的代碼: class CellTower public: int best(vector towers, int x, int y) /您的代碼 ;方法的定義方式和定義一個C函數(shù)相似。關(guān)鍵字public告訴編譯器我們定義的方法任何對象都可以調(diào)用。只有這樣測試程序才能正確運行您的代碼。 STL很多在比賽中經(jīng)常被使用的類和函數(shù)都來自于標準模板庫,通常英文縮寫為STL。STL提供了一套通用的庫,其中包含了從基本的字符處理到復(fù)雜的排序算法等各種工具。 參加比賽您必須熟悉至少兩個類:vector和string。 包含(Includes)在您使用STL中的類之前,您必須在代碼中包含相應(yīng)的頭文件。vector類來自于頭文件“vector”;string類來自于“string”。您還需要在代碼中加上如下一行:using namespace std; 這行告訴編譯器到std名字空間中去尋找類。Vectorvector是C+中用來取代C數(shù)組的。vector解決了傳統(tǒng)C語言數(shù)組的許多問題。vector能查詢當(dāng)前數(shù)組大小以及動態(tài)調(diào)整大小。用 vector 可以聲明vector,其中類型是存儲在vector中的變量類型。比如如果您想創(chuàng)建一個包含int的vector,可以使用: vector myVar;新創(chuàng)建的vector大小為0。聲明一個其它大小的vector,您可以使用: vector myVar(10);在這個例子中新創(chuàng)建的vector大小為10。 要設(shè)置或者讀取vector中某一項,您可以使用和C語言中處理數(shù)組相似的語法: vector myVar(10); myVar0 = 1; /設(shè)置在位置0的項為1 printf(%i, myVar0); /輸出1C語言數(shù)組有一個重大缺陷是程序運行時無法知道數(shù)組到底有多大。這給循環(huán)讀取數(shù)組中的每一項造成了困難。如果使用vector,這個任務(wù)就變得非常容易。size()方法返回vector的當(dāng)前大?。?for(int i = 0; i myVar.size(); i+) printf(%i, myVari); /輸出第i項 使用resize方法可以重新調(diào)整vector的大小: myVar.resize(15); /myvar的大小變成了15vector類提供了其它很多很有用的功能,點擊下面的參考鏈接了解更多關(guān)于vector的知識。 字符串(string)string類是用來代替char*表達字符串的。string提供了基本的字符處理并且提供了一個方法讓很多使用char*的函數(shù)仍舊可以使用string。您可以使用=和+操作符賦值給string: string s; s = Hello; s = s + , world;s一開始是空字符串(大小為0)。在第二行s的值變?yōu)椤癏ello”。然后“, world”被添加到了s的末端,s的值變成了“Hello, world”。 方法size()返回字符串的長度。這些代碼: string s = Hello; printf(%i, s.size();將會輸出5。 您可以象訪問char數(shù)組一樣訪問string中的某一個字符: string s = Hello; printf(%c, s0); /輸出 H s0 = h; /s變成了hello如果一個函數(shù)要求char*參數(shù),可以使用c_str()方法: string s = Hello; printf(%s, s.c_str(); /輸出 Hello解答實例請看下面的例題: 我們的輸入程序?qū)⒂涗涙I盤輸入到一個字符序列中。我們想把輸入字符序列轉(zhuǎn)換到一個單獨的string中以便于日后使用。創(chuàng)建一個方法buildstring。這個方法接受一個vector 類型的參數(shù)。這個參數(shù)代表了鍵盤的輸入序列。buildstring方法必須返回把從這個輸入序列合并而成的string。 類: StringBuilder方法: buildString參數(shù): vector 返回: string方法簽名: string buildString(vector array) 如下的解答使用string和vector解決了這個問題: #include #include using namespace std; class StringBuilder public: string buildString(vector array) /創(chuàng)建將要返回的string string s; /循環(huán)讀取數(shù)組中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 女小學(xué)生房間保護課件
- 產(chǎn)科早產(chǎn)護理查房
- 脫肛病中醫(yī)護理要點解析
- 護理技能演講核心要點與實務(wù)操作
- 2025租賃合同履行地的確定方法
- 2025標準設(shè)備租賃合同樣本
- 壓瘡護理專題分析
- 奇妙的中醫(yī)課件下載
- 細胞膜物質(zhì)轉(zhuǎn)運機制
- 杭州杭州市上城區(qū)慈善總會招聘筆試歷年參考題庫附帶答案詳解
- 小兒麻醉術(shù)后并發(fā)癥
- 人教B版高中數(shù)學(xué)必修第二冊 4.7數(shù)學(xué)建?;顒樱荷L規(guī)律的描述【課件】
- 《機械設(shè)計基礎(chǔ)》試題庫(主觀題及答案)
- 娛樂場所安全管理條例
- DBJ∕T 15-120-2017 城市軌道交通既有結(jié)構(gòu)保護技術(shù)規(guī)范
- 超星爾雅學(xué)習(xí)通《社會科學(xué)方法論(南開大學(xué))》2024章節(jié)測試答案
- 蘇教版小學(xué)1-6年級英語單詞
- 托育服務(wù)項目運營管理方案
- 江蘇省鹽城市、南京市2024年數(shù)學(xué)高一下期末統(tǒng)考模擬試題含解析
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 2024山東高速集團有限公司招聘筆試沖刺題(帶答案解析)
評論
0/150
提交評論