STL(標準模板庫)的簡單使用
一. STL簡介
STL(Standard Template Library,標準模板庫)是惠普實驗室開發的一系列軟件的統稱。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普實驗室工作時所開發出來
二. 算法
STL提供了大約100個實現算法的模版函數,比如算法for_each將爲指定序列中的每一個元素調用指定的函數,stable_sort以你所指定的規則對序列進行穩定性排序等等。這樣一來,只要我們熟悉了STL之後,許多代碼可以被大大的化簡,只需要通過調用一兩個算法模板,就可以完成所需要的功能並大大地提升效率。
算法部分主要由頭文件< algorithm>,< numeric>和< functional>組成。
(1). < algorithm>是所有STL頭文件中最大的一個(儘管它很好理解),它是由一大堆模版函數組成的,可以認爲每個函數在很大程度上都是獨立的,其中常用到的功能範圍涉及到比較、交換、查找、遍歷操作、複製、修改、移除、反轉、排序、合併等等。
(2). < numeric>體積很小,只包括幾個在序列上面進行簡單數學運算的模板函數,包括加法和乘法在序列上的一些操作。
(3). < functional>中則定義了一些模板類,用以聲明函數對象。
下面爲vector的簡單使用
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void del_arr_first(vector<int> &arr)
{
arr.erase(arr.begin()); //刪除vector中的第一個數據
}
void print_arr(vector<int> &arr)
{
for (vector<int>::iterator vec = arr.begin();vec != arr.end();vec++)
{
cout << *vec << " ";
}
cout << endl;
}
void print_sort(vector<int> &arr) //引用傳遞動態數組
{
sort(arr.begin(), arr.end()); //對動態數組進行從小到大的排序
}
int main()
{
vector<int> num;
//將數據壓入數組num中
num.push_back(213);
num.push_back(324);
num.push_back(244);
num.push_back(355);
num.push_back(466);
num.insert(num.begin(), 200); //在num的開頭插入數據200
num.insert(num.end(), 210); //在num的末尾插入數據210
print_arr(num); //輸出數組
print_sort(num); //排序數組
print_arr(num);
cout << endl;
del_arr_first(num); //刪除數組首元素
print_arr(num);
system("pause");
return 0;
}
運行結果:
文章版權說明
一:教程爲個人編寫,對個人真實有效,但不保證對所有人有效,出現任何問題或是經濟損失將與本人無關
二:更多關於本人的教程請至:152.136.70.33