歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> LINUX C++標准模板庫介紹

LINUX C++標准模板庫介紹

日期:2017/2/27 12:19:14   编辑:Linux文化

標准模板庫,也叫 STL,是一個 C++ 容器類庫,算法和迭代器。他提供許多基本算法,數據結構。STL 是一個通用庫,即可以充份定制:幾乎所有的 STL 組件都是模板。在你使用 STL 前,你必須了解模板的工作情況。

容器和算法

和許多類庫一樣,STL 包含容器類 - 可以包含其他對象的類。STL 包含向量類,鏈表類,雙向隊列類,集合類,圖類,等等。他們中的每個類都是模板,能包含各種類型的對象。例如,你可以用 vector ,就象常規的 C 語言中的數組,除了 vector 不要你象數組那樣考慮到動態內存分配的問題。

vector v(3); // 定義一個有三個元素的向量類
v[0] = 7;
v[1] = v[0] + 3;
v[2] = v[0] + v[1]; // v[0] == 7, v[1] == 10, v[2] == 17

STL 還包含了大量的算法。他們巧妙地處理儲存在容器中的數據。你能夠顛倒 vector 中的元素,只是簡單使用 reverse 算法。

reverse(v.begin(), v.end()); // v[0] == 17, v[1] == 10, v[2] == 7

在調用 reverse 的時候有兩點要注意。首先,他是個全局函數,而不是成員函數。其次,他有兩個參數,而不是一個:他操作一定范圍的元素而不是操作容器。 在這個例子中他正好是對整個容器 V 操作。

以上兩點的原因是相同的:reverse 和其他 STL 算法一樣,他們是通用的,也就是說, reverse 不僅可以用來顛倒向量的元素,也可以顛倒鏈表中元素的順序。甚至可以對數組操作。下面的程序是合法的。

double A[6] = { 1.2, 1.3, 1.4, 1.5, 1.6, 1.7 };
reverse(A, A + 6);
for (int i = 0; i < 6; ++i)
cout

Copyright © Linux教程網 All Rights Reserved