我需要你的一些智慧:
为什么不能这样做:
std::vector<int> min(INT_MIN, 3);
“ C ++异常:内存位置0x0000009AA63CF0A0处的std :: length_error。”
这种方式显然有效:
std::vector<int> min;
for (int i = 0; i < 3; ++i)
large.push_back(INT_MIN);
答案 0 :(得分:2)
INT_MIN
是一个较大的负值。它将转换为无符号的size_t
,并变成一个较大的正值-显然大于max_size()
。
您可能已经打算创建一个包含三个元素的向量,每个元素均等于INT_MIN
。在这种情况下,您将以错误的方式指定参数。做吧
std::vector<int> min(3, INT_MIN);