为啥不能比较两个 int 类型变量的值? [复制]

Posted

技术标签:

【中文标题】为啥不能比较两个 int 类型变量的值? [复制]【英文标题】:Why can't you compare the value of two int type vairables? [duplicate]为什么不能比较两个 int 类型变量的值? [复制] 【发布时间】:2018-12-30 18:43:21 【问题描述】:

我在学习 c++ 时只是在编译一些代码,并在编译器上达到了这一点。

上下文:对于此代码,它采用一维向量 v 和值 n,然后尝试在 v 中查找此值 n。如果找到则返回它的索引,如果没有则返回 -1。

int mfind(int n, const std::vector <int>& v)

int a = v.size();

for(int i=0; v[i]!=n && i<a; i++)
int index = i;


if(index < a)
    return index;

else
    return -1;



Index 和 i 都是整数,在 if 条件下比较时会输出错误:

错误:“索引”未在此范围内声明。

是不是你不能比较两个整数的值?如果此错误还有其他原因,我很想知道为什么以及如何比较两个不同 int 类型变量的值。非常感谢。

我是新来的,如果我的帖子或布局等有任何问题,请告诉我我会更改它。非常感谢。

【问题讨论】:

indexfor() 循环内声明。它在外面是看不见的 谢谢!现在说得通了。 正确识别代码是个好主意。 如果你想删除问题然后点击“删除”——不要编辑它来删除文本。但没有必要采取任何行动 【参考方案1】:

index 变量在 for 循环中声明。它在该范围之外是不可见的。

for循环之前声明变量。

【讨论】:

以上是关于为啥不能比较两个 int 类型变量的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 1 == int 的计算结果为 False? [复制]

php学习笔记-php中的比较运算符

为啥我不能将两个数组与“包含”进行比较? [复制]

unsigned 变量为啥不能和0进行比较

如果一切都是对象,为啥我不能交换两个变量? [复制]

Integer与int