Rupanya ;-) kontainer standar memberikan beberapa bentuk jaminan.
Apa jenis jaminan dan apa sebenarnya perbedaan antara berbagai jenis wadah?
Bekerja dari halaman SGI (tentang STL ) saya telah menemukan ini:
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
sumber
sumber
Jawaban:
Saya menemukan sumber yang bagus, Standard C ++ Containers . Mungkin ini yang Anda semua cari.
VEKTOR
Konstruktor
Pengakses
Pengubah
Untuk wadah lain, lihat halaman.
sumber
Saya tidak mengetahui hal-hal seperti tabel tunggal yang memungkinkan Anda membandingkan semuanya dalam satu pandangan (saya tidak yakin meja seperti itu bahkan akan layak).
Tentu saja dokumen standar ISO menyebutkan persyaratan kompleksitas secara terperinci, kadang-kadang dalam berbagai tabel yang agak mudah dibaca, kali lain dalam poin-poin yang kurang dapat dibaca untuk setiap metode tertentu.
Juga referensi pustaka STL di http://www.cplusplus.com/reference/stl/ menyediakan persyaratan kompleksitas yang sesuai.
sumber
Tabel pencarian cepat lainnya tersedia di halaman github ini
Catatan: Ini tidak mempertimbangkan semua kontainer seperti, unordered_map dll. Tetapi masih bagus untuk dilihat. Ini hanya versi yang lebih bersih dari ini
sumber