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