存储指向动态数组元素的指针
Storing pointers to elements of a dynamic array
>我有两个数组,第一个数组由整数组成,另一个数组由结构组成,其中一个成员是指向第一个数组中给定元素的指针。
struct A {
...
int *ptr;
};
int arr[100];
vector<A>arr2;
void AddElementAndAssignPointer(int index) {
arr2.push_back({...});
arr2.ptr = &arr[index];
}
现在这种方法的限制是第一个数组的大小是静态的,我希望它是动态的。但是,如果我将其设为 std::vector,则在调整矢量大小并将内容复制到更大的数组中时,对该数组中元素的引用将丢失。
这个问题的可能解决方案是什么?
编辑:问题是我如何存储对数组元素的引用并同时使其动态。
编辑2:我正在创建一个半边缘网格结构。第一个数组由网格的顶点组成。第二个数组由网格的边缘组成。为了简化问题,我需要为每个边提供一个指向顶点的指针。顶点数组需要动态,因为用户会添加新的顶点。
我相信标准的解决方案是,而不是存储实际的指针或任何东西(因为它们可以在调整vector
大小时移动(,而是存储对向量的引用和索引的size_t
到向量中。
相关文章:
- 删除指针数组 (C++) 中的元素
- 存储指向动态数组元素的指针
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 使用指针访问数组元素时出现意外结果
- 如何获取指针数组中的元素数量?
- C++如何通过超出大小将元素添加到指针数组中
- 整数指针数组的元素是否可以指向整数数组?
- 如何取消引用和打印指针数组的每个元素?
- 在C++中将指针数组的所有元素设置为 nullptr
- 删除 c++ 中指针数组的每个元素所指向的相应元素
- 指针数组.获取指针元素的值
- 如何使用指针更改数组元素
- 通过指针访问数组元素
- 字符指针对象和相应的字符数组元素比较
- 指向数组的指针会更改数组元素的值
- C++如何使用指针来循环移位数组元素
- 取消引用指针数组中的一个元素
- 我怎么知道基类对象的指针数组中元素的类型,它将为派生类分配内存
- 从 C++ 数组元素的指针获取索引的最快方法是什么
- C++:指向对象的指针数组 - 删除元素时程序崩溃>