C:使用std :: vector可以安全地像数组一样吗?
我需要一个固定大小的元素数组,并调用它们需要知道它们如何放入内存的函数,特别是:
>像glVertexPointer这样的函数,需要知道顶点在哪里,它们距离另一个是多远,等等.在我的情况下,顶点将是要存储的元素的成员. 使用std :: vector可以安全吗? 有些东西让我觉得std :: array更合适,但是 >我的架构的构造函数和析构函数很少被称为:我不介意这样的开销. 如果std :: vector对我的目的很好,我想知道细节,如果它将有一些关于std :: array(或一个普通的C数组)的运行时开销: 我知道,一旦增加了它的大小,它就会调用任何元素的默认构造函数(但是,如果我的数据有一个空的默认构造函数,我猜这不会花费任何东西),对于析构函数来说也是如此.还要别的吗? 解决方法
向量保证所有元素都具有连续的内存,因此可以安全地在您的方案中使用.与c风格的阵列相比,可以有一个小的表现,比如由于矢量实现的索引验证.在大多数情况下,性能是由别的决定的,所以我不用担心,直到实际测量的性能表明这是一个真正的问题.
如其他人所指出的那样,如果您使用指向元素(或迭代器)的指针来访问它时,请确保在使用存储在其中的数据时不重新分配向量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |