[英]C++ STL container insertion copy
我試圖用std :: vector編寫用戶定義的對象。
我了解到對於用戶定義的類,如果“復制構造函數”和“賦值運算符”是公共的,則只能將其對象插入STL容器中。 這是由於兩個原因:
C ++中的標准容器分配它們管理的內存。 如果程序創建了一個對象,則該對象位於另一個內存位置,因此要成為容器的一部分,將在容器的內存中創建一個副本。
代替復制,可以完成移動,但是在許多情況下,這樣做效率不高,有時甚至很不方便。
避免復制的一個好的解決方案是使用emplace -functions在容器中直接創建對象。
關於向量增長,因為新向量可能必須位於不同的內存地址並且內存中包含對象,因此必須移動或復制它們。 該答案顯示了如何使向量在調整大小時移動。
[英]STL multiset setting insertion order C++
[英]C++ Templated STL Container
[英]C++ STL Range Container
[英]C++ : STL Container adapters
[英]C++ standard container and STL container in c++
[英]STL map insertion copy constructor
[英]C++ STL container and in-place construction
[英]Scalable stl set like container for C++
[英]How to change size of STL container in C++
[英]C++ STL container for template base class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.