我知道 std::vector<T>
在内部存储数据是连续的(除了 std::vector<bool>
),无论是在旧的 C++03
标准还是新的 C++11
中。
有些很好的stackoverflow问题涉及到这个问题并引用了标准:答案1,答案2。
那么,关于嵌套向量 std::vector <std::vector <T> >
内部的数据是如何存储的呢?
如果每个内部向量都需要将其数据存储在连续的内存空间中,那么如何确保对于所有的 0 <= n < v.size(),都存在这样的条件 &v[n] == &v[0] + n
。
换句话说,是否可能像处理一维向量一样,通过指针或类似方式“简单”而顺序地访问此类嵌套结构中存储的所有元素?