deque a;
deque;
deque(n,elem)//n個elem初始化的deque
deque(beg,end)雙指標初始化
v.push_front()取出第乙個元素
棧,先進後出。通過top()方法返回棧頂元素,push()壓棧,pop()出棧。效率很高,不能遍歷,不支援隨機訪問。
q.front();q.back()隊頭,隊尾。頭相同,尾不同。其他操作大致與別的一樣。
鍊錶中的資料再記憶體中不是連續的。通過結點的指標來連線。
erase(pos):刪除pos處的元素,返回pos+1處的元素。
erase(po1,po2):刪除po1到po2(包含po1但不包含po2)的元素,返回po2處的元素。
remove(int n)移除鍊錶中所有的n元素。
insert(egw,elem)在egw位置插入元素elem,返回新資料的位置(難道不是egw嗎)
insert(egw,int wo,depw)在egw位置插入wo個depw元素,無返回值。
insert(egw,vbko,fsna)在egw位置插入指標vbko到fsna的位置,無返回值。
set< int >yge;
yge.find()乙個引數,在yge中查詢。若找到,返回那個值所在的位置;若沒有找到,返回yge.end
所以函式可以這麼寫:
set::iterater ret = set.find(4);
if(ret == set.end)
int ang;int id;
};set < gew > aa;
class mycompared();};
set< gew,mycompared>gn; gn容器按照gew類的物件中age大小(mycompared類中書寫)順序排列。
當容器中不是類時:
class mycompared2()
{bool operator(int a,int b){
return a>b;
//return a排序時如果時根據age進行排序,find()函式一定根據age進行查詢。比如
set< gew,mycompared>gn ;
gew kk1(100,200),kk2(200,300),kk3(100,300);
gn.insert(kk1);
gn.insert(kk2);
gn.insert(kk3);
此時如果查詢kk3,其實是查詢gn中跟kk3的age一樣的gew物件元素
set< gew >::iterator it = gn .find(kk3) ;
結果返回的迭代器可能指向為kk1,因為kk1和kk3的age是相等的。
一些stl相關
vector swap ivec 清記憶體,單純的clear或remove是不會把記憶體清掉的 ivec.reserve 100000 預設vector空間大小,避免因為vec分配得不夠,後期還需要重新分配空間 ivec.swap vector ivec or vector ivec swap iv...
關於STL中set容器的一些總結
1.關於set www.cppcns.comist等方便的容器,更重要的是stl封裝了許多複雜的資料結構演算法和大量常用資料結構操作。vector封裝陣列,list封裝了鍊錶,map和set封裝了二叉樹等,在封裝這些資料結構的時候,stl按照程式設計師的使用習慣,以成員函式方式提供的常用操作,如 插...
關於stl中關聯容器的一些基礎東西
最近發現自己日常工作中雖然用c 編碼,但是沒咋用stl的東西,所以就開始補充這方面的知識 1.宣告set容器裝的資料型別時可以順便定義比較函式方法。如 普通的宣告set容器裝型別的方式 setss 宣告set容器時還定義比較方法 ps 寫比較函式時注意相等比較要返回false 要寫成結構體物件方式,...