如何动态地为矢量分配内存<Point>?
How to allocate memory to Vector<Point> dynamically?
如何动态分配内存给Vector ?
vector<Point> vInPts;
//我的输入向量-我已经转储了一些值(大小为6)
//对输入向量点做一些计算
vector<Point> vOutPts;
//如何为输出向量动态分配内存
您可能不需要动态地分配向量本身。在内部,vector将动态分配存储元素所需的内存,并负责管理这些内存。因此只需在自动存储中声明vector:
vector<Point> vOutPts;
可以通过调用std::vector::reserve为vector分配预定数量的内存。
如果你知道你想要的大小,那么你可以分配和初始化足够的元素:
vOutPts.resize(size);
或者你可以创建一个大小:
vector<Point> vOutPts(size);
否则,每次只能增长一个元素:
vOutPts.push_back(some_point);
如果你(粗略地)知道你想要推送多少元素,那么你可以通过事先分配一些内存来提高效率,而不初始化任何元素:
vOutPts.reserve(approx_size);
这样
vector <Point> *myvect= new vector<Point>()
但是别忘了打电话:
delete myvect
当你使用完它,否则你会创建一个泄漏。
请注意,以这种方式分配向量本身与动态分配向量内容不同。只有当你打算在函数中创建一个向量并通过引用返回它时,才应该进行向量本身的动态分配。自动内存管理更容易处理,更不容易出错,最重要的是比动态分配对象更安全……因此无论何时你都应该避免这种动态分配
相关文章:
- Win32编译器选项和内存分配
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 当需要超过16GB的连续内存时,内存分配失败
- 尝试摆脱任何堆内存分配
- 以下代码执行哪种内存分配(动态或静态)?
- 开放 CV 中的动态内存分配,用于视频处理
- 为什么类和 main() 函数中也有动态内存分配
- 使用 NTAllocateVirtualMemory 和 GetProcAddress 的内存分配问题不起作用
- C++:矢量分配器行为、内存分配和智能指针
- 介于 [固定数组] 和 [带内存分配的指针] 之间的性能
- Linux C++ 中的页面对齐内存分配
- 整数内存分配/释放
- 将内存分配返回值强制转换为 TYPE 数组
- C++程序什么都不做,但瓦尔格林德显示内存分配
- 给定特定内存地址的数组的动态内存分配
- 如何完成内存分配
- 我刚刚了解了C++中的动态内存分配
- 在先前调用 string::find 后添加内存分配和内存集会导致它返回 npos.为什么?
- 对于堆上的页面对齐内存分配是否有任何优化或不同的 API?
- 无法删除布尔动态内存分配