天天看點

STL(标準模闆庫)的簡單使用

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;
}
           

運作結果:

STL(标準模闆庫)的簡單使用

文章版權說明

一:教程為個人編寫,對個人真實有效,但不保證對所有人有效,出現任何問題或是經濟損失将與本人無關

二:更多關于本人的教程請至:152.136.70.33