C ++无法计算带有向量大小的公式吗?

用户名
int main() {
    vector<int> v;
    if (0 < v.size() - 1) {
        printf("true");
    } else {
        printf("false");
    }
}

打印true表示0 <-1

约翰·兹温克

std::vector::size()返回一个无符号整数。如果为0,然后减去1,则下溢并变成一个巨大的值(特别是std::numeric_limits<std::vector::size_type>::max())。比较工作正常,但减法会产生您未预期的值。

有关无符号下溢(和溢出)的更多信息,请参见:C ++下溢和溢出

您的代码最简单的修复方法可能是if (1 < v.size())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

c ++中所有类实例化中的可变向量大小

我想在C ++中实现map,因为我无法检查向量大小并为我制作的向量提供值

C ++向量大小调整元素重新排序了吗?

c ++向量大小和容量输出相同的值

C++ 中的向量大小是否超过 2147483647?

矢量大小计算为负的C ++行为

R向量大小限制:“。C不支持长向量(参数5)”

C ++特征向量在类编译时推断向量大小

向量大小-C ++中大小为0时为1

Java向量大小调整可能会像C ++中那样出现问题?

向量大小太大时,如何解决C ++中内存不足的问题?

向量C ++向量的大小

使用带有向量优化的C ++ 20的std :: popcount等同于popcnt intristic吗?

计算向量的向量大小(以字节为单位)

带有 std::map 的 C++ 向量?

C++ 删除前 x 个元素的有效方法,将第 x+1 个元素推到第一个而不改变向量大小

C++ - 如何从具有常量大小的算术类型数组创建类构造函数?

有关C中整数指针变量大小的问题

C ++ 11:如何使用累加/ lambda函数从字符串向量计算所有大小的总和?

C ++向量的大小无效

向量大小受std :: cin影响吗?

您可以初始化unique_ptrs的“静态const向量”吗?(带有GCC 7.3的C ++ 17)

所有带有向量<int>和回溯的排列c ++

我可以在带有切换大小写的C#中使用正则表达式吗?

带有结构体和向量的 C++ 函数

在C中计算APY公式

c# 数学/公式计算

分配向量大小与保留向量大小

向量大小自动失败