c++ - STL 容器大小要求

标签 c++ stl

对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 可能很大,listsizeof 可能会非常大。可以接受吗?

最佳答案

不,标准中没有容器大小的要求。标准详细说明的是数据结构的行为是什么。它还详细说明了对其及其成员函数进行的操作的复杂性。这反过来可能会限制您设计它以符合这些要求的方式,但如果您能弄清楚如何以不同的方式维护这些要求,则标准允许这样做。

关于c++ - STL 容器大小要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40404528/

相关文章:

c++ - 枚举成员的值可以自动递减而不是递增吗?

c++ - 推导非类型模板参数的模板类型

c++ - 汉明立方体的数据结构

c++ - priority_queue - 删除不在顶部的元素

c++ - 错误 : insertor is not a member of std

c++ - 嵌套数据结构中的STL排序

c++ - 安全转换为 const char * - 临时生命周期问题

c++ - Qt - 如何在多个平台上保存一个配置文件

c++ - 进程列表及其子进程

c++ - STL风格算法: how to manage output iterator