【发布时间】:2013-02-10 05:53:35
【问题描述】:
是的,另一个realloc 与std::vector 的问题。我知道你要说什么,我同意,忘记手动内存分配,只需使用std::vector。不幸的是,我的教授禁止我在这项作业中使用 STL 中的任何东西。
是的,我有一个 T 的动态数组,我需要调整它的大小,但我不能使用 std::vector。我可以回到黑暗时代并与malloc 和家人一起做所有事情,但如果我可以使用new,那就太棒了。
我读过很多帖子,每个人都说“不,你不能这样做,请使用std::vector”,但它们都是在 2011 年 8 月之前发布的,我希望事情可能会有所改变自 C++11 诞生以来。所以告诉我,我是幸运的,还是我必须恢复到 C 风格的内存分配?
【问题讨论】:
-
“很遗憾,我的教授禁止我在这项作业中使用 STL 中的任何东西。” - 没问题,
std::vector不在 STL 中,它在 C++ 标准库中。 -
@Rapptz:如果你想让你的代码真正工作,你就不能这样做。
-
@MichaelDorst H2CO3 所指的是,STL 是过时的第 3 方库的旧名称,而现在被错误地称为 STL 的所有内容都是 C++ 标准库的一部分.如果您有兴趣,请查看What's this STL vs. "C++ Standard Library" fight all about?..
-
@perreal 你的意思是
malloc后跟一个副本,有时是,但是如果有空间,realloc不会复制,它只会分配更多空间。 -
@jogojapan 不管你想告诉我什么听起来很有希望,你能发布一个更详细的答案吗?
标签: c++ dynamic-memory-allocation