自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

高級(jí)技術(shù)學(xué)者對(duì)C++代碼進(jìn)行編制

開發(fā) 后端
在Windows平臺(tái)上的實(shí)現(xiàn)就有若干種,比較常用的有Visual C++ 6.0附帶的C++代碼實(shí)現(xiàn),和Borland C++ Builder附帶的C++編譯器實(shí)現(xiàn)。就對(duì)標(biāo)準(zhǔn)的執(zhí)行程度來看,后者要好一些。

C++代碼擁有很多成熟的用于網(wǎng)絡(luò)通信的庫(kù),其中***有代表性的是跨平臺(tái)的、重量級(jí)的ACE庫(kù),該庫(kù)可以說是C++語(yǔ)言最重要的成果之一,下面就進(jìn)行學(xué)習(xí)研究,希望大家能夠得到自己想要的東西。

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

  1. #include<iostream> 
  2.  
  3.   #include<vector> 
  4.  
  5.   #include<algorithm> 
  6.  
  7.   using namespace std;  
  8.  
  9.  
  10.  
  11.   int main()  
  12.  
  13.   {  
  14.  
  15.       vector<double> v;  
  16.  
  17.  
  18.  
  19.       double d;  
  20.  
  21.       while(cin>>d) v.push_back(d);   // 讀入元素  
  22.  
  23.       if (!cin.eof()) {       // 檢查輸入是否出錯(cuò)  
  24.  
  25.           cerr << "format error\n";  
  26.  
  27.           return 1;   // 返回一個(gè)錯(cuò)誤  
  28.  
  29.       }  
  30.  
  31.  
  32.  
  33.       cout << "read " << v.size() << " elements\n";  
  34.  
  35.  
  36.  
  37.       reverse(v.begin(),v.end());  
  38.  
  39.       cout << "elements in reverse order:\n";  
  40.  
  41.       for (int i = 0; i<v.size(); ++i) cout << v[i] << '\n';  
  42.  
  43.  
  44.  
  45.       return 0; // 成功返回  
  46.  
  47.   } 


對(duì)這段程序的觀察:這是一段標(biāo)準(zhǔn)的ISO C++程序,使用了標(biāo)準(zhǔn)庫(kù)(standard library)。標(biāo)準(zhǔn)庫(kù)工具在命名空間std中聲明,封裝在沒有.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ǔ)言來學(xué)習(xí)”("Learning Standard C++ as a New Language"),你可以在本人著作列表(my publications list)中下載到它。

 !cin.eof()是對(duì)流的格式的檢查。事實(shí)上,它檢查循環(huán)是否終結(jié)于發(fā)現(xiàn)一個(gè)end-of-file(如果不是這樣,那么意味著輸入沒有按照給定的格式)。更多的說明,請(qǐng)參見你的C++教科書中的“流狀態(tài)”(stream state)部分。vector知道它自己的大小,因此我不需要計(jì)算元素的數(shù)量。#t#

 這段程序沒有包含顯式的內(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)存分配和釋放問題。

程序在遇到輸入一個(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”來表示輸入已經(jīng)結(jié)束。

責(zé)任編輯:chenqingxiang 來源: CSDN
相關(guān)推薦

2010-01-22 18:06:24

C++代碼

2010-01-26 09:40:23

C++代碼

2010-01-11 16:59:50

C++源代碼

2010-01-13 16:44:03

C++

2010-01-14 17:18:17

C++語(yǔ)言

2010-01-12 15:24:48

C++語(yǔ)言

2010-01-15 19:05:42

學(xué)習(xí)C++

2010-01-12 15:03:33

C++代碼

2010-01-20 17:48:07

C++ 函數(shù)重載

2010-01-28 14:04:35

C++鏈表

2010-01-13 18:47:53

C++教程

2009-12-10 16:50:58

Visual Stud

2010-01-15 17:18:57

C++源程序

2010-01-11 11:16:37

C++編程

2009-12-08 16:22:06

WCF代碼

2010-01-22 13:20:27

C++代碼

2009-12-29 11:03:28

ADO代碼

2010-01-13 11:10:17

C++庫(kù)函數(shù)

2011-07-12 13:01:00

CC++

2010-01-15 10:48:29

C++程序代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)