C++リファレンス・ウェブサイト http://www.cplusplus.com/reference/vector/vector/swap/ std :: vectorのスワップ機能の複雑さは一定であると言います。私はそれがベクトルの内容への参照を変更することによってこれをアーカイブすることができると思いますが、1つのstd :: vectorオブジェクトがスタックにあり、もう1つがヒープにある場合、内容を参照することによってこれをアーカイブすることはできませんベクター。だから、ベクトルのスワップ関数の複雑さは常にO(1)です、アーカイブはどのようにこれは、1つのstd :: vectorオブジェクトがスタックにあり、もう1つがヒープにあるのでしょうか?1つのstd :: vectorオブジェクトがスタックにあり、もう1つがヒープにある場合、vectorのスワップ関数の時間複雑さはO(1)かO(n)か?
0
A
答えて
2
ベクトルの実際の内容は、ほぼ常にヒープ上にあります。また、参照
1
は言う:同じタイプの
別のベクター容器は、その内容 このコンテナのものと交換されている(すなわち、 同じテンプレートパラメータ、TとのAllocでインスタンス化)。
あなたが見ることができるように、両方のベクトルのアロケータは同じでなければなりません。つまり、実際のデータはデフォルトでヒープ上に配置されます。
あなたは(通常はより正確である)cpprefence documentationに見れば、それは言う:
の場合はstd :: allocator_traits :: propagate_on_container_swap ::値 がtrueの場合、アロケータは使用して交換されています非会員スワップへの非正規化コール それ以外の場合は、スワップされません( get_allocator()!= other.get_allocator()、動作は未定義です)。
したがって、スワップ可能な場合は、異なるアロケータでベクトルをスワップすることもできます。とにかく、スワップは、データがベクトルオブジェクト自体には格納されず、アロケータによって作成および管理されるメモリ内に格納されるため、一定の操作になります。
関連する問題
- 1. O(1)、O(n log n)、O(log n)の複雑さを持つアルゴリズムの例
- 2. この関数の時間複雑度はO(1)ですか?
- 3. ハッシュテーブル操作の時間複雑度はO(1)またはO(N)ですか?
- 4. なぜ配列挿入の時間複雑さはO(n)で、O(n + 1)ではないのですか?
- 5. 時間複雑度がO(sqrt(n)* log(n))のアルゴリズムはありますか?
- 6. すべてのn、O(1)がO(n)よりも速い場合、O(1)上でO(n)を選択しますか?
- 7. O(n)時間の複雑さを持つN-queenについての説明?
- 8. なぜヒープソートの空間の複雑さはO(1)ですか?
- 9. 時間Oの複雑さ(n(nはをログ)ログ)+ nはO(L)
- 10. ListBox.FindString最悪の場合のランタイムは何ですか? O(n)、O(n log n)、O(1)?
- 11. o(n^2)の代わりにo(log n)またはo(n)の時間複雑度を持つようにこのコードを修正する方法
- 12. mergesortの複雑さO(nlogn)+ O(n)?
- 13. このアルゴリズム(n^2)*(n^2 + 1)/ 2(つまりO(n/4))の実行時間はなぜですか?
- 14. O(N)時間とO(C)空間の複雑さでJava 8ストリームAPIを使用してリストからmax(min)を1つだけ削除する方法
- 15. 複雑さO(log(n))はO(sqrt(n))と等価ですか?
- 16. (1/2)^ nのBig Oクラス
- 17. 複数のアプレットが1つのjarファイルにあり、複数のアプレットが1ページにありますか?
- 18. C++ステートメントのBig-O 'delete [] Q;' O(1)またはO(n)?
- 19. 次のコードの時間複雑度はどのようにO(n)ですか?
- 20. O(1)の複雑さを持つ単一のリンクリストの1つの要素を削除するアルゴリズム
- 21. O(n)からO(1)へのdeque移動の改善
- 22. 1つの列に複数の変数がありますか?
- 23. O(n)時間およびO(1)メモリ内の文字列に重複があり、データ構造がないことを検出する
- 24. K最近点。時間複雑度O(n)ではなく、O(nLogn)である。どうやって?
- 25. Unity3dでO(1)関数をコルーチンにする価値はありますか?
- 26. 特定のアルゴリズム - 複雑さはO(N)
- 27. 1つのドメインに複数のCookieがありますか?
- 28. 複数のパイプラインに1つのバスがありますか?
- 29. 1つのビューに複数のテーブルがありますか?
- 30. 1つのドメインに複数のアプリがありますか?