C中的Realloc等价物
是的,另一个realloc vs. std :: vector问题.我知道你要说什么,我同意,忘记手动内存分配,只需使用std :: vector.不幸的是,我的教授禁止我使用STL的任何东西进行这项任务.
所以是的,我有一个动态的T数组,我需要它可以调整大小,我不能使用std :: vector.我可以回到黑暗时代,用malloc和家庭来完成整个事情,但是如果我可以使用新的那将是非常棒的. 我已经阅读了大量的帖子,其中每个人都说“不,你不能这样做,使用std :: vector”,但是它们都是在2011年8月之前发布的,我希望自从有希望之后可能会有所改变. C 11的黎明.告诉我,我运气好,还是我必须恢复到C风格的内存分配? 解决方法
无论如何你应该完全避免重新分配,因为你不能像这样移动C对象.
>使用buf = new unsigned char [sizeof(T)* capacity]创建新缓冲区 所有这一切都假设您不必担心异常安全,这对于分配来说可能是可以的.请注意,在现实世界的代码中,您必须保证异常安全,而且比这更乏味. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |