一个空队列占用多少字节
How many bytes does an empty queue take?
一个空队列、一个空向量等需要多少字节?
这是一个实现细节-标准对此没有太多说明。我们可能会计算出一个最小值:
vector
将(至少)具有指向数据本身的指针、实际大小和容量。所以至少是一个整数大小的3倍。显然,大小和指针可以是64位,在这种情况下,它是64位=24字节的3倍。但是,如果不考虑实际实现,就无法确定大小是否为64位。
queue
可能类似。
你当然可以做sizeof(vector<int>)
,自己看看。但不能保证在不同的体系结构上是相同的。
这个问题没有一般的答案。这完全取决于执行情况。
一般来说,一个常见的实现将基于数组或链表。在这种情况下,它需要一个指向队列开头和长度的指针(或指向末尾的指针)。这反过来意味着它需要sizeof(void*)*2个字节。在x86_64上,它将等于16个字节。链表也会有两个指针。但不同的实现可能需要更多或更少的时间。例如,可以使用24位基址和8位来存储大小,从而只使用4个字节进行记账。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- C++ 中 STL 中迭代器的大小(以字节为单位)是多少
- GCC 编译器一个字节中有多少位
- 您可以在Arduino字符串中存储多少字节?
- new分配了多少字节
- ifstream::read 不告诉它真正读取了多少字节?
- WSARecv一次可以接收的最大字节数是多少
- 一个字节中有多少位(任意系统)
- 2 字节可以容纳多少个字符
- 如何返回实际消耗了多少字节来从inflate()返回解压缩的数据
- 一个非内联非虚拟方法向类的实例添加了多少字节?C++
- 字符串需要多少字节?一个字符
- 布尔值的大小是多少?1 位或 1 字节
- 下面的指针将写入多少字节
- 一个空队列占用多少字节
- 虚拟函数需要多少字节的额外内存
- unsigned long long有多少字节
- Qt5.2 QNetwork,写了多少字节
- ostream::write实际写入了多少字节
- C# 的字节 [,] 的C++等效值是多少?