C++ 特性笔记 / STL 使用笔记

关于 mt19937

mt19937 mtrnd(chrono::system_clock::now().time_since_epoch().count())

关于 shuffle

c++11 的,可能比 random_shuffle 好用一点?
shuffle(vec.begin(), vec.end(), mtrnd)

pbds

ifdef 的用法

for (auto [x, y] : V)

关于几类 STL 容器的 swap

swap 的方式有 S1.swap(S2)swap(S1, S2)

vector, map, set, deque 的 swap 时间复杂度是 \(\mathcal O(1)\) 的。

priority_queue, queue, stack 的 swap 时间复杂度是 \(\mathcal O(size)\) 的,但在开启 c++11 的情况下三种容器的 swap 可以做到 \(\mathcal O(1)\)

另外,对两个数组 swap 是 \(\mathcal O(size)\) 的,无论开不开 c++11。

posted @ 2024-10-14 09:00  SkyMaths  阅读(35)  评论(0)    收藏  举报