对于一个非常具体的应用程序,我想使用一个容器,其中的元素具有可变大小并且在内存中是连续的。基本原理是访问将主要是顺序的,因此将所有数据放在同一个线性数据结构中应该有助于缓存行为。
当然随机访问是不可能的,但数据结构应该使用矢量样式的push_back
方法动态调整大小。
这样的容器存在吗?怎么称呼?
编辑以解决 Arne Mertz 的评论:
我要表示的结构是一个图表。容器将包含节点列表,每个节点都有边列表,可能表示为指向其他(先前)节点的指针列表。
struct Node {
//various fixed size fields about the node itself
...
unsigned short n_edges;
Node * edges[n_edges]; // schematically
};