为什么我不能在vector上分配这么多空间:
#include <stdio.h>
#include <vector>
#include <inttypes.h>
#include <stdint.h>
#include <iostream>
int main()
{
std::vector<uint64_t> offsets;
uint64_t count;
count = 4294967296;
offsets.resize(count);
//printf("%" PRIu64 "\n", offsets.max_size());
printf("%" PRIu64 "\n", offsets.size());
printf("%" PRIu64 "\n", offsets.max_size());
printf("%" PRIu64 "\n", count * sizeof(uint64_t));
}
如果我在偏移量上省略调整大小功能,这是输出:
0
2305843009213693951个
34359738368
如果最大尺寸为2305843009213693951,为什么我不能分配4294967296的计数,我觉得我不太了解调整大小是如何工作的。