c++ - float* 和 vector<float> 的区别

标签 c++

<分区>

有什么区别

    float* x = new float[SIZE];

    vector<float> x(SIZE);

虽然它们都在内存中占用 SIZE 整数空间,并且使用 vector 允许使用有用的辅助函数,但如果我不需要使用 vector 函数怎么办。 使用 float* 会更好吗?或 shared_ptr<float>而不是 vector<float>从性能和内存方面来看!?

最佳答案

当 vector 超出范围时,它的内存会自动释放。

当 float* 超出范围时,您最好将指针存储在某个地方,否则会发生内存泄漏。

参见 RAII

关于c++ - float* 和 vector<float> 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753187/

相关文章:

c++ - 结构中的指针

c++ - 将 int 转换为 char* 时出现奇怪的输出

c++ - 定义指向私有(private)继承函数的成员函数指针

c++ - 检查 1/n 小数点后是否有无限位数

c++ - 如何为 MFC 线程设置超时

c++ - Emscripten 不从静态库链接

c++ - 当类及其方法存储在指针数组中时如何调用它

c++ - 将 HTTP header 添加到 Windows 上的所有传出数据包?

C++:使用 typedef 使代码灵活

c++ - 如何在 opencv 中为 3 维数组赋值