关于C++ STL容器元素的要求,标准是这样说的:元素类型应该是CopyConstructible,对于CopyConstructible的要求有一个表。此外,根据各种书籍(Josuttis 等),生成的拷贝应该“等同于”来源。
我想我需要在这里澄清一下。究竟什么是“等同于”?另外,我对“CopyConstructible”和“深/浅拷贝”之间的关系有点困惑。通常,复制构造函数是浅复制或深复制。那么哪个适用于“CopyConstructible”,哪个不适用?
感谢任何评论!
最佳答案
深拷贝或浅拷贝都有效。例如,shared_ptr
总是进行浅拷贝(带有一些额外的引用计数内容),您可以在容器中很好地使用它们。这取决于复制操作的语义。
等效意味着您的程序不应该依赖于它是否适用于原始版本或拷贝。
关于c++ - "CopyConstructible"对 C++ STL 容器元素的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532173/