stl 是指 c++ 標準模板庫,是 c++ 語言標準中的重要組成部分,其以模板類和模版函式的形式提供了各種資料結構與演算法的精巧實現,如果能充分使用stl,可以在**空間、執行時間、編碼效率上得到極大的提高。
1.標準庫string類 標頭檔案< string > cin>>s; getline(cin,line)(可輸入帶空格,回車鍵)
string最好用就是可以整體輸入輸出賦值等等感覺就是對字串型的整數進行操作。
常用操作:
1.s.empty() 判空
2.s.size() 返回字元個數
3.直接進行賦值、連線、比較操作
2.棧(stack)< stack >只有乙個出口先進後出。
定義方法: stackstack_name;
1.top():返回乙個棧頂元素的引用,型別為 t&。如果棧為空,返回值未定義。
2.push(date_type a):可以將物件副本壓入棧頂。這是通過呼叫底層容器的 push_back() 函式完成的。
3.pop():彈出棧頂元素,直接刪除棧頂元素,並沒有返回該值哦。
4.size():返回棧中元素的個數。
5.empty():在棧中沒有元素的情況下返回 true。
3.佇列(queue)< queue >底端輸入元素從頂端輸出元素。
定義方法:queuequeue_name;
1.q.push(x); 將x 接到佇列的末端。
2.q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。
3.q.front(),即最早被壓入佇列的元素。
4.q.back(),即最後被壓入佇列的元素。
5.q.empty(),當佇列空時,返回true。
6.q.size(),返回佇列內元素個數
**優先佇列(priority_queue)**主要區別就是最大權值放在最頭頭;定義方法差不多
操作方面:基本類似,q.top()返回優先佇列的下乙個元素。
生成佇列
標頭檔案bool next_permutation(begin,end);改變區間元素,產生下乙個排列。
bool prev_permutation(bedin,end);產生前乙個排列。
4.vector動態陣列< vector >定義方法:vectorvector_name 我覺得是個好用的好東西,是乙個可以存放任意型別的動態陣列,能夠增加和壓縮資料。
1.v.empty() 返回bool型,表示vector是否為空(v.empty() )
2.v.size() 返回vector內元素個數 (v.size() )
3.v.push_back(data_typea) 將元素a插入最尾端
4.v.pop_back() 將最尾端元素刪除
5.v[i] 類似陣列取第i個位置的元素(v[0])
5.reverse函式和upper_bound函式和lower_bound函式
reverse(bedin,end)元素逆序排列。
upper_bound(bedin,end,value)返回》value的元素的第乙個位置。
lower_bound(bedin,end,value)返回》=value的元素的第乙個位置。
6.set及multiset
1.s.insert(elem)安插乙個elem副本,返回新元素位置
2.s.erase(elem)移除與elem相同的所有元素,返回剩餘元素個數
3.s.erase(pos)移除指定元素
4.s.clear()清空
感想stl的東西大部分感覺要花較長一段時間去理解使用(string和sort除外,這倆用的應該算是之前用的最多的了…),題目也沒打幾個,也沒好意思寫。最近再調生物鐘+有點小感冒。明天應該就要回歸爆肝的生活了吧…
部分STL簡單應用知識點
stl中的部分簡單應i用包括棧 stack 佇列 queue 其中佇列還有特殊的優先佇列 priority queue 還有vector 動態陣列 其次還有sort排序以及生成排序等多種排序方法,其中包括upper bound和lower bound的定址排序法方便返回特定元素的第乙個位置。其次還有...
部分STL簡單應用知識點
stl中的部分簡單應i用包括棧 stack 佇列 queue 其中佇列還有特殊的優先佇列 priority queue 還有vector 動態陣列 其次還有sort排序以及生成排序等多種排序方法,其中包括upper bound和lower bound的定址排序法方便返回特定元素的第乙個位置。其次還有...
STL基礎部分
include using namespace std int main 1122333455578 process finished with exit code 0 include using namespace std int main 52352543187 process finished...