c – 矢量向量在内存中如何对齐?
发布时间:2020-12-16 05:33:54 所属栏目:百科 来源:网络整理
导读:我明白为 Set size of vector of vectors at run time 描述,可以声明向量的向量 vectorvectorint ref; 然后调整第一级的大小 ref.resize(i); 并推动元素在二级: ref[i].push_back(23); 但是矢量矢量如何在内存中对齐? 对于简单的矢量,它是一个容器,并且连
我明白为
Set size of vector of vectors at run time
描述,可以声明向量的向量 vector<vector<int> > ref; 然后调整第一级的大小 ref.resize(i); 并推动元素在二级: ref[i].push_back(23); 但是矢量矢量如何在内存中对齐? 对于简单的矢量,它是一个容器,并且连续对齐它的元素,像一个数组;但在矢量矢量的情况下,我看不到图片. 由于每个内向量的大小(向量向量中的向量)大小可能改变,向量的外向量(向量向量中的向量)是否连续对齐内向量?外向量是否研究每个内向量的复制空间?如果一个矢量超调怎么办? 解决方法
向量的大小< int>存储在ref中的struct是常量.通常的实现方式有三个指针,或32位体系结构的大约12个字节,或闪存的新64位架构上的24个字节.
所以ref管理大致ref.capacity()* 12个字节的连续存储. 每个元素/向量< int>在ref中独立于元素ref管理自己的整数.为了简单起见,在ref.size()== ref.capacity()中的艺术渲染中. 所以你的 ref.resize(i); 只影响顶行.你的 ref[i].push_back(23); 只影响第i列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |