STL Containers,STL容器,他用来存储一组对象,在存储对象上,比较灵活。容器管理着这些元素的存储,并且提供了一些方法直接的去访问或者提供iterators(reference objects with similar properties to pointers).我们经常使用的重写容器的一些class有如下:这些容器内部都有有些方法,在实际应用中,我们应该根据这些容器的内部方法的使用效率来决定。比如插入删除,链表等高效一些stack, queue 和priority_queue 被实现为容器的适配器。容器类 顺序容器 :Sequence containers:
Vector (class template )
Double ended queue (class template )
List (class template )
Container adaptors:
LIFO stack (class template )
FIFO queue (class template )
Priority queue (class template)
Associative containers:
Set (class template )
Multiple-key set (class template)
Map (class template )
Multiple-key map (class template )
Bitset (class template)
Member map
This is a comparison chart with thedifferent member functions present on each of the different containers:
Sequence containers
Associative containers
Headers
<vector>
<deque>
<list>
<set>
<map>
<bitset>
Members
complex
constructor
*
destructor
O(n)
operator=
O(n)
iterators
begin
O(1)
end
O(1)
rbegin
O(1)
rend
O(1)
capacity
size
*
max_size
*
empty
O(1)
resize
O(n)
element access
front
O(1)
back
O(1)
operator[]
*
at
O(1)
modifiers
assign
O(n)
insert
*
erase
*
swap
O(1)
clear
O(n)
push_front
O(1)
pop_front
O(1)
push_back
O(1)
pop_back
O(1)
observers
key_comp
O(1)
value_comp
O(1)
operations
find
O(log n)
count
O(log n)
lower_bound
O(log n)
upper_bound
O(log n)
equal_range
O(log n)
unique members
Amortized complexity shown. Legend: O(1) constant < O(log n)logarithmic < O(n) linear; *=depends on container Container adaptors:
Container Adaptors
Headers
<stack>
<queue>
Members
constructor
*
capacity
size
O(1)
empty
O(1)
element access
front
O(1)
back
O(1)
top
O(1)
modifiers
push
O(1)
pop
O(1)
09-20
09-20