对STL容器sizeof
有要求吗?例如,我可以使用 Node
实现 std::list
,如下所示:
struct Node
{
Node* left;
Node* right;
T value;
};
并存储节点的两个指针或对象,例如:
Node* m_head;
Node* m_tail;
或
Node m_head;
Node m_tail;
考虑到值类型T
可能很大,list
的sizeof
可能会非常大。可以接受吗?
最佳答案
不,标准中没有容器大小的要求。标准详细说明的是数据结构的行为是什么。它还详细说明了对其及其成员函数进行的操作的复杂性。这反过来可能会限制您设计它以符合这些要求的方式,但如果您能弄清楚如何以不同的方式维护这些要求,则标准允许这样做。
关于c++ - STL 容器大小要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40404528/