STL常用(我這個新手認為的)

2021-10-17 19:13:56 字數 3407 閱讀 7814

v.push_back(type num);//在末尾新增num

v.pop_back();//刪除末尾元素

v.size();//獲取v中元素個數

v.resize(type num)把v的長度設定為n個元素(不會初始化長度內的已有元素)

v.empty();//判斷v是否為空,空返回1,非空0

v.clear()//清空,size變為0

v.insert(iterator it,type num)//在it指向元素前插入乙個元素

v.erase(iterator it)//刪除迭代器指向元素

v.front()//返回首元素

v.back()//返回尾元素

v.begin()返回指向首元素的迭代器

v.end()返回尾迭代器

(非函式部分)

s1=s2//將s2字串賦給s1

s1==s2、s1!=s2、s1(函式部分)

cin>>s1不能輸入空格,用getline(cin,s1)可以輸入

s[n]返回字串中下標為n的字元//同陣列的a[n]一樣

s.substr(p,n)返回從s的下標p開始的n個字元組成的字串

s.length()返回字串長度

s.empty()判斷s是否為空,空返回1,非

空放回0

//下面幾個函式好像可以寫幾種形參,就不亂寫了

s.erase()

s.insert()

s.find()

s.rfind()

(queue只能在容器末尾新增元素,在頭部移出元素)

q.push(元素)//末尾新增

q.pop()//頭部出隊

q.front()//獲取頭部元素

q.size()//獲取q中元素個數

q.empty()//判斷q是否為空,空1非0

pq.push(item)//在pq中新增元素

pq.top()//獲取pq中最大的元素

pq.pop()//使最大元素出隊

pq.size()//獲取pq中元素個數

pq.empty()//老empty了

s.push(item)//入棧

s.pop()//出棧

s.top()//訪問棧頂,返回棧頂的值

s.empty()

s.size()

a.begin()

a.end()

a.push_back()

a.push_front()

a.empty()

a.clear()//清空

a.pop_back()//刪去尾部第乙個(list不能為空)

a.pop_front()//刪去頭部第乙個(list不能為空)

a.insert(iterator,num)//在iterator指向位置前插入num

a.insert(iterator,n,num)//在iterator指向位置前插入n個n

uma.erase(iterator1,iterator2)//將a的從it1到it2之間的元素刪除

a.remove(num)//刪除a中所有值為num的元素

基於紅黑樹,只有insert沒有push,把數放進去後就自動排好序,預設從小到大,不能有重複的(multiset允許重複),遍歷還是用迭代器

s.begin();

s.end();

s.size();

s.empty();

s.insert(elem);

s.clear();//清空

s.erase(pos);//根據位置刪除

s.erase(begin,end);//刪除區間

s.erase(elem);//刪除值為elem的元素

s.find(key);//找是否有值為key的元素,有則返回迭代器,無則返回s.end();

s.lowerbound(keyelem);//返回第乙個key>=keyelem元素的迭代器

s.upperbound(keyelem);//返回第乙個key>keyelem元素的迭代器

map也是基於紅黑樹,自動排序

first為起始位置,用指標或迭代器

last

compare為比較方式,省略則預設公升序,如果排序結構體,必須compar

時間為o(nlogn)

移除區間內的重複項

[first,last]範圍內的值必須有序

他會將的陣列變成,即將重複的數移到陣列末尾

返回最後乙個非重複元素的迭代器,所以用該返回的迭代器減去陣列首位址就得到非重複元素的範圍

lower_bound(first,last,value)

upper_bound(first,last,value)

該序列必須從小到大(序列從大到小的話就要變成從小到大)

value為查詢的值

lower返回的是序列中第乙個大於等於value的元素的指標,時間為o(logn)

upper返回的是第乙個大於的指標

[first,last]內必須有序,如果找不到就返回last

用於求序列[first,last]元素全排列中乙個排序的下乙個排序

我認為的封裝

既然是物件導向,那麼我覺得就從物件的層面去理解會更明了一點.定義 首先對外部隱藏物件的屬性和具體的實現細節,對外部的話有接 互,而不是外部可以一 竟內部,更好的去管理物件,這就是封裝 目的 就是將物件的使用者和設計者分開 在c 中通過類,完成這個資料與操作結合在一起,使其符合人們對於某一件事物的認知...

codeblocks中我認為比較常用的快捷鍵

日常編輯 1 需要更大編輯空間時,f2和shift f2分別可以顯隱下方logs others欄和左方的management欄。3 ctrl d可複製當前行或選中塊。4 ctrl shift c注釋掉當前行或選中塊,ctrl shift x則解除注釋。5 tab縮排當前行或選中塊,shift tab...

新手向 stl常用容器介紹

1 容器的基本概念 stl庫為許多常用的資料結構提供了通用的模板,我們叫它容器。顧名思義,容器可以用來儲存資料,其中的資料可以是預定義型別,如int double,也可以是自定義型別。容器類中的元素自動申請記憶體,不需要new和delete。新增了相應的標頭檔案後容器就可以直接使用了。宣告乙個容器的...