vector<int> a(N), b(N);
swap(a, b);
このswapの実体はvector::swapでswap(a,b)はO(1)で終わる。DPでメモリを節約するのによくやる。
配列のswap
int a[N] = {}, b[N] = {};
swap(a, b);
先程のコードを配列に変えただけ。実はこちらのswap(a,b)にはO(N)かかる。
この要素数が等しい配列のswap(a,b)は配列の各値を交換している。
ちなみに
int a[N] = {}, b[N+1] ={};
swap(a, b);
のように、2個の配列の要素数が異なる場合、コンパイルエラーになった。