網上有很多關于宣傳pos機模板,機試小課堂丨 C++STL容器進階的知識,也有很多人為大家解答關于宣傳pos機模板的問題,今天pos機之家(www.www690aa.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
1、宣傳pos機模板
宣傳pos機模板
蘇世計算機考研,程序猿專屬的學習分享社區
【聲明:本文為原創文章,未經同意,嚴禁轉載和抄襲,違者將追究其法律責任】
/ 寫在前面的話 /
蘇世機試小課堂,考研機試不再慌!
公主號:蘇世學社考研 蘇世計算機考研
STL是什么?
STL(Standard Template Library),中文翻譯成“標準模板庫”或者“泛型庫”,包含了諸多在計算機科學領域里所常用的基本數據結構和基本算法,并且做到了數據結構和算法的分離,是 C++ 提供的一個基礎模板的集合,用于完成輸入/輸出、數學計算等功能,高度體現了軟件的復用性。
STL是C++ 程序庫的重要組成部分,已完全被內置到支持 C++ 的編譯器中,無需額外安裝。從廣義上講STL代碼分為三類:Container(容器)、iterator(迭代器)和algorithm(算法), 位于各個 C++ 的頭文件中,以源代碼的形式提供。
學STL能干什么?
STL起到了簡化作用,可以直接調用別人的代碼,提高代碼的開發效率!
STL常用內容介紹
1
容器(Container)
容器(Container),是用來管理某一類對象的集合,是一種數據結構,如vector、list、deque、set/multiset、map/multimap等。
1.1 vector
vector(向量)是一個封裝了動態大小數組的順序容器,可以隨機存取元素,也能夠存放任意類型。元素按照嚴格的線性順序排序,可以通過元素在序列中的位置訪問對應的元素。也支持對序列中的元素快速直接訪問,使用一個內存分配器對象來動態處理它的存儲需求。
常用方法:
size() 返回向量大小
max_size() 返回向量最大容量
resize() 更改向量大小
capacity() 真實大小
empty() 判空,如果是空,返回true
push_back() 末尾添加元素
pop_back() 末尾刪除元素
insert() 任意位置插入元素
erase() 任意位置刪除元素
swap() 交換兩個向量的元素
clear() 清空向量元素
begin() 指向向量第一個元素
end() 指向向量最后一個元素的下一個位置
front() 訪問第一個元素
back() 訪問最后一個元素
參考代碼和運行結果:
1.2 list
list和vector容器都是序列式容器,list是一個由它的數據元素通過鏈表指針串連成邏輯意義的環狀雙向鏈表,所以只用一個指針就可以完整實現。
常用方法:
push_front(x) 把元素x插入鏈表頭部
push_back(x) 把元素x插入鏈表尾部
pop_front() 彈出雙向隊列的第一個元素
pop_back() 刪除雙向隊列的最后一個元素
begin() 返回list中第一個元素的迭代器
end() 返回list中最后一個元素的下一個位置
clear() 清空list中的所有元素
empty() 利用empty() 判斷list是否為空
front() 獲得list容器中的頭部元素
back() 獲得list容器的最后一個元素
resize(n) 調整list的長度為只容納n個元素
assign(n,val) 將所有元素替換為n個val
swap() 交換兩個鏈表
reverse() 實現list逆置
merge() 合并一個list
remove(x) 刪除所有值為x的元素
參考代碼和運行結果:
1.3 deque
deque動態將多個連續空間通過指針數組合在一起,隨時可以增加一段新的空間,用來做隊列,在常數時間內對頭尾兩端進行插入和刪除操作,雖然和vector一樣都是采用動態數組來管理元素,但不需要保留空間,可以隨機存取。
常用方法:
push_front(x) 將x插入隊首
push_back(x) 將x插入隊尾
pop_front() 彈出隊首
pop_back() 彈出隊尾
front() 獲取隊首
back() 獲取隊尾
empty() 判斷deque是否為空
size() 返回deque當前元素的個數
clear() 清空一個deque
max_size() 返回deque所能容納的最大容量
assign(n,val) 將所有元素替換為n個val
insert(pos,elem) 在pos上插入一個元素
erase(pos) 刪除pos位置上的元素
resize(n) 重定義deque的大小
參考代碼和運行結果:
1.4 set/multiset
set(集合)是一個用來存儲同一數據類型的關聯式容器,每個元素的值都唯一,而且系統能根據元素的值自動排序。set內部采用的是一種非常高效的平衡檢索二叉樹:紅黑樹(Red-Black Tree),性能好于一般的平衡二叉樹。multiset和set的區別在于multiset可以包含多個數值相同的元素,set不可以。
常用方法為:
begin() 返回set容器的第一個元素
end() 返回set容器的最后一個元素的下一個位置
clear() 刪除set容器中的所有的元素 empty() 判斷set容器是否為空,如果為空,返回true
max_size() 返回set容器能容納的元素最大個數
size() 返回當前set容器中的元素個數
insert() 在集合中插入元素
erase() 在集合中刪除元素
count() 返回某個值元素的個數
find() 返回一個指向被查找到元素的迭代器
lower_bound() 返回指向大于(或等于)某個值元素的第一個迭代器
upper_bound() 返回大于某個值元素的迭代器
參考代碼和運行結果:
1.5 map/multimap
map是一個關聯容器,提供一對一(key-value)的數據處理功能,key和value可以是任意類型,可以根據key值快速查找value,查找的時間復雜度是log(n),也可以快速插入key-value值,快速刪除,根據key值修改value,遍歷所有數據。map內部是一棵紅黑樹,具有根據key值自動排序的功能。multimap和map的區別是multimap的一個key值可以對應多個value。
常用方法:
map<int,string> mp;構造一個map
insert() 插入數據
mp[1]=”111” 用數組方式插入數據
size() 返回map里有多少數據
count() 判定關鍵字是否出現
find() 定位關鍵字在哪個位置出現
lower_bound() 返回查找關鍵字的下界
upper_bound() 返回查找關鍵字的上界
erase(iterator it) 指定某個位置進行刪除
erase(iterator fi,iterator la) 刪除一個范圍
erase(key) 刪除一個關鍵字
clear() 清空所有元素
begin() 返回指向map頭部的迭代器
end() 返回指向map最后一個鍵值對的下一個位置
參考代碼和運行結果:
2
迭代器(iterator)
迭代器用于遍歷對象集合的元素,這些元素可能是容器,也可能是容器的子集。迭代器相當于容器和操作容器的算法之間的中介。
迭代器分為以下四種:
①正向迭代器
容器類名::iterator 迭代器名;
②常量正向迭代器
容器類名::const_iterator 迭代器名;
③反向迭代器
容器類名::reverse_iterator 迭代器名;
④常量反向迭代器
容器類名::const_reverse_iterator 迭代器名;
不同容器的迭代器功能
3
算法(iterator)
算法作用于容器,提供了執行各種操作的方式,包括對容器內容執行初始化、排序、搜索和轉換等操作。
使用C++標準庫的算法,需要包含頭文件<algorithm>
用于處理一個或多個iterator區間,第一個區間通常以起點和終點表示,其他區間多數只需要提供起點足夠。
當需要用STL中某一個方法時,建議同學們自行查閱API文檔。
這里列舉一些算法:
(1)只讀算法:
查找算法
搜索統計算法
(2)可變序列算法:
可變序列算法包括元素復制,變換,替換,填充,移除和隨機生成等。
(3)排序算法:
(4)關系算法:
(5)堆算法:
(6)list容器特有算法:
蘇世學社旗下品牌,專注于計算機考研
計算機考研一手資訊,原創高質量干貨
深度的學習分享丨咨詢前輩丨個性化指導
以上就是關于宣傳pos機模板,機試小課堂丨 C++STL容器進階的知識,后面我們會繼續為大家整理關于宣傳pos機模板的知識,希望能夠幫助到大家!
