亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c++標準程序庫.txt

?? 可用的C++源代碼 想找些電子書籍 N個小時都沒有找到 好不容易好象是找到但還坨麻煩
?? TXT
字號:
C++標準程序庫(The C++ Standard Library)

標準程序庫提供:

[1] 基本的運行期之語言支持(run-time language support)(比如運行期內存分配、運行期型別識別等);

[2] C語言標準程序庫(為了使其與類型系統的沖突降到最低,進行了一些微小的修改);

[3] strings和輸入輸出流(附帶對國際字符集和本地化的支持);

[4] 一個container framework(比如vector,list和map等)以及使用這些container的算法(比如通用的遍歷、排序以及合并算法);

[5] 對數值計算的支持(復數以及向量的算術運算;類BLAS的、通用的slices;有利于優化處理的語意設計)。

將一個類包含在程序庫里的主要原則有:這個類應該可能被幾乎所有的C++程序員(不管是新手還是專家)使用;這個類應該以一種通用的形式被提供,但與實現相同功用的、更簡單的形式相比,又不會帶來明顯的負荷;其基本用法很容易學會。總的來說,C++標準庫提供了最常用的基本數據結構以及使用這些數據結構的基本算法。

由container、iterator和算法形成的framework通常被稱為STL。STL基本上是Alexander Stepanov的研究成果[Stepanov,1994]。

 

6.1  string和I/O(輸入/輸出)

在C++中,string和I/O操作并不是直接由某種特殊的語言結構提供的。標準程序庫提供了string和一些I/O型別。例如:

#include <string>    // 使標準string設施成為可用的

#include <iostream> // 使標準I/O設施成為可用的

int main()

{

using namespace std;

string name;

cout << “Please enter your name: “; // 提示用戶

cin >> name; // 讀取一個名稱

cout << “Hello, “ << name << ‘\n’; // 輸出名稱,后跟一個“新行符”

return 0;

}

這個例子使用了標準輸入流cin、標準輸出流cout,以及它們所需要的>>運算符(意即“取自某處”)和<<運算符(意即“放到某處”)。

I/O流支持多種格式化和緩沖設施;string支持諸如聯結、插入、從串中取字符之類的常用操作。流和string可以用于任何字符集。

標準程序庫的設施可以(也經常就是)只利用面向用戶的設施來實現。因此即使標準設施有時還不夠用,用戶也可以自己提供同樣優雅的替代方案。

 

6.2  Container

標準程序庫提供了一些最有用也最通用的container型別,從而使程序員能夠從中選擇最能滿足應用需要的container:

[標準container概要]

l         l vector<T>                        大小可變的向量

l         l list<T>                            雙向鏈表

l         l queue<T>                          隊列

l         l stack<T>                          棧

l         l deque<T>                          雙端隊列

l         l priority_queue<T> 按值排序的隊列

l         l set<T>                              集合

l         l multiset<T>                    允許出現重復元素的集合

l         l map<key,val>                  關聯數組

l         l multimap<key,val> 允許出現重復key值的關聯數組

這些container不但被設計得具有高效性,而且還提供了接口,使我們可以在任何適當的地方交替的使用它們。例如,list、vector等就提供了把元素追加到末尾的高效操作。這使得那些需要高效的經由下標對其進行訪問的數據可以按照“增量”的方式被構造。舉個例子:

vector<Point> cities;

void add_points(Point sentinel)

{

Point buf;

While (cin >> buf) { // 從輸入端讀取結點信息

    If (buf == sentinel) return;

    //

    cities.push_back(buf); // 把結點加入vecotr(的末尾)

}

}

container對元素沒有什么強制性的限制;這即是說,所有的型別從本質上而言都可以被作為container中元素的型別。特別的是,像int和char*這樣的內建型別以及C語言風格的數據結構(即結構體struct)也可以被作為container中元素的型別。

 

6.3  算法(Algorithms)

標準程序庫提供了成打的算法。這些算法在namespace std的范圍內定義,可以通過#include <algorithm>來獲得使用權。下面列出我認為特別有用的部分算法:

[標準算法摘錄]

l         l for_each()        對每一個元素都喚起(調用)一個函數

l         l find()            查找第一個能與引數匹配的元素

l         l find_if()         查找第一個能與謂詞(predicate)匹配的元素

l         l count()           計算元素出現的次數

l         l count_if()        計算能與謂詞匹配的元素個數

l         l replace()         用新的值替換元素

l         l replace_if()      用新的值替換能與謂詞匹配的元素

l         l copy()            復制(拷貝)元素

l         l unique_copy()     復制(拷貝)不是鄰近副本的元素

l         l sort()            對元素排序

l         l equal_range()     查找所有元素值相等的元素

l         l merge()           合并有序的序列

上述這些算法以及標準程序庫中其它算法都可以應用于標準container、string和內建數組。實際上,所有算法都可以應用于§4.5.1中描述的任何一種序列(如下圖):


如前文所述,*運算符意即“經由一個iterator訪問元素”;++運算符意即“使iterator指向下一個元素”。例如,我們可以實現一個通用的算法,其任務是從一個序列中找到第一個能匹配謂詞的元素:

template<class In, class Predicate> In find if(In first, In last, Predicate pred)

{

while (first != last && !pred(*first)) ++first;

return first;

}

這些通用且普適的算法從三個方面說明了它們比大多數相應的傳統算法要優秀:簡單的定義;能根據輸入序列的型別在編譯期間選擇合適的算法;能對簡單的操作(比如==、<和簡單的用戶自定義謂詞)施行內聯處理。

 

6.4  數字(Numerics)

與C一樣,C++并不是意欲面向數字計算的語言。然而,C++還是擁有許多面向數字計算的部分——標準程序庫就很好的反映了這一點。

 

6.4.1  復數(Complex Numbers)

依照§4.1中描述的complex類,標準程序庫支持一系列的復數型別。為了使復數中分量的型別可以是單精度浮點數(float)、雙精度浮點數(double)以及其它各種型別,標準程序庫中的complex以模板實現:

template<class scalar> class complex {

public:

complex(scalar re, scalar im);

// …

};

這個復數模板支持常見的算術操作以及最常用的一些數學函數。例如:

template<class C> complex<C> pow(const complex<C>&, int);//

void f(complex<float> fl, complex<double> db)

{

complex<long double> ld = fl + sqrt(db);

db += fl * 3;

fl = pow(1 / fl, 2);

// …

}

由此可知,C++對復數型別的支持程度形同對浮點數型別的支持。

 

6.4.2  向量計算(Vector Arithmetic)

我們在§6.2中講到過標準vector,其設計目標就是使其成為一個具有可適應性的、通用的機制,專門用來存放各種數據值,并且能很好的配嵌于由container、iterator和算法組成的體系結構中。然而標準vector并不支持向量的算術操作。為vector增加這樣的操作其實并不難,但如果使然,那么“讓這些操作具有通用性和可適應性”的努力則會使對其進行優化處理的效果變得微乎其微——而對于嚴格的數學計算而言,通過優化處理以提高效率往往是最重要的。因此,標準程序庫提供了一個名為valarray的vector,它的通用性不夠強,但為面向數字計算的優化留出了很大的余地:

template<class T>class valarray {

// …

T& operator[](size_t);

// …

};

型別size_t是無符號整型(unsigned integer),valarray將其用于數組的下標操作。

valarray能用于一般的算術操作以及一些最常用的數學函數。例如:

template<class T>valarray<T>abs(const valarray<T>&); // 取絕對值的函數

void f(const valarray<double>& a1, const valarray<double>& a2)

{

valarray<double> a = a1 * 3.14 + a2 / a1;

a += a2 * 3.14;

valarray<double> aa = abs(a);

double d = a2[7];

// …

}

valarray型別還支持BLAS-style、generalized slicing。更多復雜的數學型別——比如Matrix——可以基于valarray來構造。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲私人黄色宅男| 天堂影院一区二区| 亚洲成a人片综合在线| 国产最新精品精品你懂的| 91视频xxxx| 久久伊人中文字幕| 亚洲成人7777| 色天使色偷偷av一区二区| 久久午夜色播影院免费高清| 一区二区三区高清不卡| 国产91丝袜在线观看| 日韩色在线观看| 有码一区二区三区| 99国产精品久久| 国产精品视频观看| 国产福利一区二区| 欧美一区日韩一区| 亚洲成人av一区| 欧洲中文字幕精品| 亚洲最大的成人av| 91色porny蝌蚪| 国产精品二三区| 粉嫩av一区二区三区粉嫩| 精品日产卡一卡二卡麻豆| 人人超碰91尤物精品国产| 欧美亚洲尤物久久| 亚洲综合网站在线观看| 成人av中文字幕| 国产精品素人视频| 国产91精品一区二区麻豆网站| 欧美zozozo| 美女在线观看视频一区二区| 91麻豆精品久久久久蜜臀| 三级欧美在线一区| 欧美日韩精品系列| 青草国产精品久久久久久| 欧美精品日韩一区| 毛片av中文字幕一区二区| 日韩一区二区在线看片| 麻豆精品新av中文字幕| 精品久久久久久久一区二区蜜臀| 免费成人在线影院| 欧美大白屁股肥臀xxxxxx| 国内精品写真在线观看| 国产视频一区二区三区在线观看| 国产91综合网| 亚洲美女视频一区| 欧美日韩国产精选| 六月丁香综合在线视频| 久久综合久久久久88| 成人中文字幕在线| 亚洲女同一区二区| 国产精品久久久久永久免费观看| 国产综合色产在线精品| 国产精品久久久一区麻豆最新章节| 风间由美性色一区二区三区| 中文字幕一区二区三区av| 在线影视一区二区三区| 日本在线不卡视频一二三区| 精品久久久久久久久久久院品网| 国产福利91精品一区二区三区| 国产欧美日韩三区| 色视频欧美一区二区三区| 日韩精品每日更新| 国产三级精品在线| 欧洲国内综合视频| 九色综合国产一区二区三区| 亚洲欧洲一区二区在线播放| 欧美日韩国产一二三| 国产不卡在线一区| 亚洲图片欧美视频| 国产欧美中文在线| 欧美日韩精品高清| 成人一区二区三区视频| 一区二区三区四区中文字幕| 精品国产成人在线影院 | 午夜私人影院久久久久| 精品福利在线导航| 色综合久久88色综合天天 | 亚洲同性同志一二三专区| 欧美丰满高潮xxxx喷水动漫| 岛国av在线一区| 无吗不卡中文字幕| 亚洲欧美aⅴ...| 国产日本欧美一区二区| 9191成人精品久久| 91久久精品国产91性色tv| 国产精品1区2区| 秋霞电影网一区二区| 亚洲精品乱码久久久久久久久| 久久欧美一区二区| 91麻豆精品国产综合久久久久久 | 久久久午夜电影| 欧美理论片在线| 91影院在线免费观看| 国产精品影音先锋| 日av在线不卡| 日日夜夜精品视频天天综合网| 亚洲视频网在线直播| 久久综合一区二区| 日韩一区二区免费在线观看| 欧美亚洲综合一区| 91麻豆免费看| 成人爽a毛片一区二区免费| 免费成人性网站| 麻豆中文一区二区| 日本不卡一二三| 美女mm1313爽爽久久久蜜臀| 亚洲一区二区四区蜜桃| 一区二区三区日韩在线观看| 中文字幕一区二区三区视频| 国产精品网站在线观看| 欧美国产在线观看| 久久久亚洲精品石原莉奈 | 久久精品亚洲国产奇米99| 日韩欧美亚洲国产另类| 欧美一二三区在线| 337p粉嫩大胆噜噜噜噜噜91av| 欧美一区二区三区白人| 日韩一区二区免费在线观看| 日韩亚洲欧美在线| 精品国产欧美一区二区| 久久综合色8888| 国产精品久久精品日日| 中文字幕中文字幕中文字幕亚洲无线| 欧美国产成人在线| 成人欧美一区二区三区小说 | 日产国产欧美视频一区精品| 日韩黄色在线观看| 精品影院一区二区久久久| 韩国av一区二区| 成人免费av网站| 欧洲视频一区二区| 欧美剧在线免费观看网站| 欧美成人精精品一区二区频| 精品久久人人做人人爽| 中文字幕乱码一区二区免费| 亚洲人成在线播放网站岛国| 亚洲国产一区二区三区| 免费在线观看日韩欧美| 国产精品一区二区三区四区| 成人av免费在线| 日韩三级视频中文字幕| 久久久久亚洲蜜桃| 亚洲欧美日韩一区二区三区在线观看| 亚洲高清免费视频| 国产伦精品一区二区三区免费迷 | 亚洲超碰精品一区二区| 麻豆精品新av中文字幕| av不卡在线播放| 欧美精品123区| 欧美激情综合网| 视频一区视频二区中文| 国产成人免费9x9x人网站视频| 91久久精品一区二区三| 精品少妇一区二区三区免费观看 | 一区2区3区在线看| 老司机精品视频一区二区三区| 国产成人av电影免费在线观看| 91久久精品国产91性色tv| 久久久久久免费网| 亚洲国产乱码最新视频 | 美女网站在线免费欧美精品| 成人激情免费网站| 日韩美女视频一区二区在线观看| 国产精品看片你懂得| 精品一区二区三区香蕉蜜桃 | 日韩欧美激情在线| 亚洲黄色av一区| 成人综合在线视频| 亚洲精品一区二区三区福利 | 国产色一区二区| 亚洲成av人片一区二区梦乃| 成人性色生活片免费看爆迷你毛片| 欧美日本在线一区| 亚洲精品国产成人久久av盗摄| 国产高清无密码一区二区三区| 欧美丰满一区二区免费视频| 亚洲图片激情小说| 成人少妇影院yyyy| 久久精品日产第一区二区三区高清版| 日韩国产欧美三级| 欧美日本在线播放| 亚洲自拍偷拍九九九| 97国产精品videossex| 国产精品欧美一级免费| 国产乱码精品一品二品| 欧美电影免费观看高清完整版在 | 日韩福利视频导航| 色成人在线视频| 国产精品传媒入口麻豆| 国产a级毛片一区| 久久综合九色综合97婷婷 | 一区二区欧美精品| 91天堂素人约啪| 亚洲美女免费在线| 91国内精品野花午夜精品| 一区二区三区欧美| 色狠狠色狠狠综合| 午夜视频一区二区|