STL 庫函式的思考

2021-04-19 07:31:47 字數 475 閱讀 8640

stl 庫函式

庫函式的使用,使得c++的程式設計的工作大大減小了。但是有這麼乙個問題,使用庫函式必然會引起效率的降低。

比如在函式呼叫中,如果是返回乙個vector,那麼很可能需要複製乙個向量,而在c中的話,使用動態分配記憶體就不需要複製向量來返回了。c++做為一種效率優先的語言,肯定是不能容忍這種複製向量的行為。

在stl庫演算法中,引入的迭代器的思想是相當好的,對於設計迴圈結構的程式很有幫組。stl中提倡使用左開右閉的區間進行思考。這樣的優點乙個是右節點減去左節點得到的就是區間包含的元素的數目,另外在迴圈的時候,遍歷容器,當迭代器==右節點時就表示退出迴圈,而當右節點==左節點時表示了空的區間。

空區間的好處:在設計迴圈結構時,對於描述不變式時用處很大。[original i, current i) 表示的是已經處理了的一段區間,當初始化時區間長度為0,正好表示還沒有開始處理。接下來,i 的更新則變為下一次的右節點。區間沒有重疊元素,才能實現區間的加法等於乙個大的區間。

STL 常見庫函式

stack void push const t value 向棧頂插入乙個元素 void pop 移除棧頂元素 bool empty const 檢查棧是否為空 size type size const 返回棧中元素的數量 reference top const reference top cons...

deque的STL常用庫函式

雙向佇列基本的庫函式 是一種優化了的 對序列兩端元素進行新增和刪除操作的基本序列容器。它允許較為快速地隨機訪問,但它不像vector 把所有的物件儲存在一塊連續的記憶體塊,而是採用多個連續的儲存塊,並且在乙個對映結構中儲存對這些塊及其順序的跟蹤。向deque 兩端新增或刪除元素的開銷很小。它不需要重...

c 常用的庫函式 stl

1.通用std find 函式 std find函式的確有很好的通用性,但是也有很大的缺點,就是演算法的效率不高,演算法的複雜度為o n 2.特定容器的find 函式 當資料量是百萬或者千萬級的時候,std find的o n 演算法就讓程式感到銷魂了。這時候我們可以考慮使用map或者set的演算法。...