オンラインでドキュメントを確認すると、参照渡しであることがわかりました。スタックが実際にデータのコピーを作成することを誰かが確認できますか?STLスタックへのプッシュは参照渡しですが、スタックは値のコピーを作成しますか?
1
A
答えて
7
はい、it does copy the element you give itです。 C++ 11では、一時的にまたはstd::move
を与えると、それを移動することもできます。
また、C++ 11には、コンストラクタ引数を指定して直接値を組み立てるemplace
があります。
1
です。値はコピーされますが、思った通りに機能しない可能性があります。 char*
のようなポインタを押すと、文字列全体ではなくポインタ値だけがコピーされます。 int
またはCustomObject
という単純なものをプッシュしているが、ポインタはプッシュしていない場合は、コピーされます。 stack
アダプタ自体に
1
パラメータは、参照することによってですが、stack
はただのアダプタであることを覚えている - そのpush
はすぐにその同じパラメータを渡し、push_back
を呼び出します。ただし、この呼び出しは値によってパラメータを渡します。
したがって、渡すパラメータはコピーされます。参照渡しはstd::stack
への参照は1回のみコピーされることを意味します。これが値渡しだった場合は、2回コピーされます(現時点では、コンパイラーはコピーを取り除きますが、これはほぼ確実です)。
関連する問題
- 1. Haxeはパラメータを参照渡しするか、コピーを作成しますか?
- 2. スタックされた棒グラフで負の値を作成する方法は、前のスタックで開始しますか?
- 3. スタック参照変数
- 4. セグメンテーションフォールトなしでスタックにスタックをコピー
- 5. パラメータのコピーまたは参照を作成しますか?
- 6. 逆参照ポインタへの参照を作成しますか?
- 7. STL:参照または値を格納しますか?
- 8. C#:PictureBoxのスタックを作成します。
- 9. JAVA変数の値はいつスタックにプッシュされますか?
- 10. PHPは別のif条件でスタックをスタックしますか?
- 11. null参照例外スタック
- 12. 値渡し/参照は深い/浅いコピーを作成するのと同等ですか?
- 13. ポインタへの参照対参照渡し?
- 14. Javaは値渡しか参照渡しですか?
- 15. 空のスタックを作成するには?
- 16. 3D * .stlサーフェスモデルを2D画像スタックに変換しますか?
- 17. 合格STLコンテナはコピーを作成しますか?
- 18. C++不変のカスタムクラスが参照渡しまたは値渡し
- 19. 値渡しまたはカスタムデータ構造への参照?
- 20. C++は、コンテナにプッシュするときにクラスオブジェクトをスタックまたはヒープに作成しますか?
- 21. 地図はGoで値渡しまたは参照渡しされますか?
- 22. ヒープまたはスタックに参照が格納されていますか?
- 23. スレッドオブジェクトは、スタックまたはヒープメモリ内で作成されますか?
- 24. movまたはleaをスタックにプッシュ
- 25. 値渡し値渡し参照渡し
- 26. ポインタを渡す:スタックに異なる値がありますか?
- 27. 参照渡しは新しい変数の作成を避けますか?
- 28. コンパイラはC++の関数にstd :: stringを渡しながらスタックにコピーしますか?
- 29. STRUTS2 - 値のスタック値がURLに渡されます!
- 30. スタックでエラーが発生する(プッシュ&ポップ)
参照リンクが追加されました。 –
@NiklasB .:私より30秒も速かった;) –