Aparentemente ;-) os contêineres padrão fornecem alguma forma de garantia.
Que tipo de garantias e quais são exatamente as diferenças entre os diferentes tipos de contêiner?
Trabalhando na página da SGI (sobre STL ), eu vim com isso:
Container Types:
================
Container:
Forward Container
Reverse Container
Random Access Container
Sequence
Front Insert Sequence
Back Insert Sequence
Associative Container
Simple Associative Container
Pair Associative Container
Sorted Associative Container
Multiple Associative Container
Container Types mapped to Standard Containers
=============================================
std::vector: Sequence Back Sequence Forward/Reverse/Random Container
std::deque: Sequence Front/Back Sequence Forward/Reverse/Random Container
std::list: Sequence Front/Back Sequence Forward/Reverse Container
std::set: Sorted/Simple/Unique Associative Container Forward Container
std::map: Sorted/Pair/Unique Associative Container Forward Container
std::multiset: Sorted/Simple/Multiple Associative Container Forward Container
std::multimap: Sorted/Pair/Multiple Associative Container Forward Container
Container Guarantees:
=====================
Simp
or
For Rev Rand Front Back Assoc Sort Mult
Cont: Cont: Cont Cont: Sequ: Sequ: Sequ: Cont: Cont: Cont:
Copy Const: O(n)
Fill Const: O(n)
begin() O(1)
end() O(1)
rbegin() O(1)
rend() O(1)
front() O(1)
push_front() O(1)
pop_front() O(1)
push_back() O(1)
pop_back() O(1)
Insert() O(ln(n))
Insert: fill O(n)
Insert: range O(n) O(kln(n)+n)
size() O(n)
swap() O(1)
erase key O(ln(n))
erase element O(1)
erase range O(ln(n)+S)
count() O(log(n)+k)
find() O(ln(n))
equal range O(ln(n))
Lower Bound/Upper Bound O(ln(n))
Equality O(n)
InEquality O(n)
Element Access O(1)
c++
stl
containers
big-o
Martin York
fonte
fonte
Respostas:
Encontrei o bom recurso Standard C ++ Containers . Provavelmente é isso que você está procurando.
VETOR
Construtores
Accessors
Modificadores
Para outros recipientes, consulte a página.
fonte
Não conheço nada parecido com uma única tabela que permita comparar todas elas de uma só vez (não tenho certeza se essa tabela seria viável).
Obviamente, o documento padrão da ISO enumera os requisitos de complexidade em detalhes, às vezes em várias tabelas bastante legíveis, outras em pontos de marcador menos legíveis para cada método específico.
Além disso, a referência da biblioteca STL em http://www.cplusplus.com/reference/stl/ fornece os requisitos de complexidade, quando apropriado.
fonte
Outra tabela de pesquisa rápida está disponível nesta página do github
Nota: Isso não considera todos os contêineres, como unordered_map etc., mas ainda é ótimo de se olhar. É apenas uma versão mais limpa deste
fonte