オンラインでドキュメントを確認すると、参照渡しであることがわかりました。スタックが実際にデータのコピーを作成することを誰かが確認できますか?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. STL:参照または値を格納しますか?
- 4. null参照例外スタック
- 5. 値渡しまたはカスタムデータ構造への参照?
- 6. 値渡し値渡し参照渡し
- 7. movまたはleaをスタックにプッシュ
- 8. STRUTS2 - 値のスタック値がURLに渡されます!
- 9. ポインタを渡す:スタックに異なる値がありますか?
- 10. 合格STLコンテナはコピーを作成しますか?
- 11. コンパイラはC++の関数にstd :: stringを渡しながらスタックにコピーしますか?
- 12. ヒープまたはスタックに参照が格納されていますか?
- 13. RWCString - 値渡しまたはconst参照
- 14. 参照渡しは新しい変数の作成を避けますか?
- 15. Microsoft BluetoothはWidcomm Bluetoothスタックにスタックしますか?
- 16. pthreadの参照渡し値
- 17. System.arrayCopy()はオブジェクトまたはオブジェクトへの参照をコピーしますか?
- 18. 値渡しと参照渡しJavaScriptで
- 19. JavaおよびC++は値渡しで参照渡しする
- 20. PHPのオブジェクトが値渡しか参照渡しですか?このコードで
- 21. クラウドフォーメーション別のスタックから管理ポリシーを参照する方法
- 22. これらのレジスタはなぜスタックにプッシュされますか?
- 23. MATLABワークスペースをスタックにプッシュする方法はありますか?
- 24. スタック内のオブジェクトの作成
- 25. スタックの値を別のスタックに割り当てます。
- 26. XMMレジスタをスタックにプッシュ
- 27. node.jsのexpress-resourcesへの参照を渡しますか?
- 28. Cの関数から配列を渡してスタックを持つスタック
- 29. .Netは1つのスタック(値の種類を格納するために)ごとにdllとexeまたは1スタックを作成します
- 30. C++での参照渡しの値
参照リンクが追加されました。 –
@NiklasB .:私より30秒も速かった;) –