std::vector 元素的连续性
问题是是否保证 std::vector 元素是连续的,从而可以使用作为 C 数组的向量的第一个元素指针。尽管 C 98 标准中缺乏明确的保证,但在没有连续性的情况下很难满足 std::vector 要求。
C 0x 标准纠正了这一遗漏,如 n2798 中所示:
“向量是一个序列容器,支持...向量的元素连续存储,这意味着如果 v 是一个向量,其中 T 是 bool 以外的某种类型,那么对于所有 0
这证实了 std::vector 元素确实是连续存储的,允许使用指向第一个元素的指针作为 C 数组:
std::vector<int> values; // ... fill up values if (!values.empty()) { int *array = &values[0]; for (int i = 0; i < values.size(); ++i) { int v = array[i]; // do something with 'v' } }
以上是std::vector 元素是否保证是连续的?的详细内容。更多信息请关注PHP中文网其他相关文章!