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。新增了相應的標頭檔案後容器就可以直接使用了。宣告乙個容器的...