Role of container in priority_queue of C++ STL.
Why vectors are used in container.
And what are advantages and disadvantages if I use deque instead of vector.
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | maomao90 | 163 |
2 | Um_nik | 163 |
4 | atcoder_official | 161 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | nor | 153 |
9 | Dominater069 | 153 |
Role of container in priority_queue of C++ STL.
Why vectors are used in container.
And what are advantages and disadvantages if I use deque instead of vector.
Name |
---|
The design of
std::priority_queue
is such that you're allowed to specify which container you want to use to internally represent the priority queue. All it requires is that the container allows for random access, and has thefront
,push_back
andpop_back
functions. So bothstd::vector
andstd::deque
can be used as the underlying container.There's not really much of a difference apart from the usual difference between
std::vector
andstd::deque
. However, in practice,std::vector
tends to be faster.Reference implementations: https://judge.yosupo.jp/submission/56329 (Dijkstra with deque) and https://judge.yosupo.jp/submission/52076 (Dijkstra with vector).