deque的基本操作
一、原型与构造函数
typedef deque<T, allocator<T> > deqObj;
构造函数
deque();
deque(al);
deque(n);
deque(n,x);
deque(n,x,al);
deque(first,last);
deque(first,last,al);
二、操作
1.resize & clear
使用resize(n)改变大小,使用resize(n, val)如果需要用T(val) 来填满空闲值。
2.clear操作
在clear后调用deqObj.swap(deque<T,A>())是好习惯,而且也一定要这么做。
3.font(),back(),operator [],(如出边界,形为未定)at()(如出边界,抛异常),push_back(),push_front(),pop_back(),pop_front(),insert(iterator it,x),insert(iterator it,n,x),insert(iterator first,iterator last),(插入后指向刚插入的值),erase(it),删除在it指定位置的值,erase(iterator first,iterator last)删除指定区间的值(左闭右开)。这些操作与上面的操作雷同。
Set与multiset的基本操作
一、原型与构造函数
typedef set<Key, less<Key>, allocator<key> > setObj;
构造函数
set(); //空set,按pred()排序
set(pr); //声明一个空的按pr排序的set
set(pr,al); //声明一个按pr排序的集合用al分配
set(first,last)
set(first,last,pr)
set(first,last,pr,al)
操作
1.clear()
2.erase(it); erase(first, last)
3.insert(key),返回值为pair<iterator, bool> 类型,没有与插入元素相同的元素时,second为true,此时first指向新插入的元素。否则为False,first仍指向原来的元素
4.find(key)
5.lower_bound(key)
6.upper_bound(key)
7.equal_range(key),返回一个pair<iterator , iterator >(lower_bound(key), upper_bound(key))
8.count, equal_range的长度
9.key_comp,如果k1排在k2的前面,那么key_comp()(key1,key2)就为true
10.value_comp,对于set<key>对象,它与key_comp一样。
multiset
1.insert,由于insert总能成功,那么它返回的就是新元素的迭代器,而并非pair<iteraor, bool>对象.
2.find返回第一个与key相等的迭代器。
3.equal_range将返回 [0,setObj.size())的任意长度.
4.count()将返回[0,setObj.size())的任意值。