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

運行結果:
在這裏插入圖片描述
文章版權說明

一:教程爲個人編寫,對個人真實有效,但不保證對所有人有效,出現任何問題或是經濟損失將與本人無關
二:更多關於本人的教程請至:152.136.70.33

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章