问题标签 [relational-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
138102 浏览

c++ - < 比 <= 快吗?

if (a < 901)比 快吗if (a <= 900)

与这个简单的示例不完全一样,但循环复杂代码的性能略有变化。我想这必须与生成的机器代码有关,以防万一。

0 投票
3 回答
116 浏览

c - c:这条线是做什么的?

我读了一些代码,发现了这个相当神秘的语法:

不知何故,计数增加了。但我认为 < 运算符会返回 true 或 false。这条线有什么作用?

0 投票
2 回答
793 浏览

c++ - 在 C++ 中重载二元关系运算符的正确方法

在 C++ 中重载二元关系运算符的正确/规范方法是什么?

使用成员函数还是friend自由函数更好?

例如:

或者:

0 投票
1 回答
183 浏览

c - C 编程:使用关系运算符 - 小于 vs 小于等于

我正在研究一个教科书问题,我在下面编写了这段代码来识别用户输入的正数下方的所有素数:

当输入 30 作为输入时,输出如下:

但是,当我更改内部 for 循环中的关系运算符时:

至:

以下成为输入值 30 的输出:

现在,素数不再打印了,但我想不出任何合乎逻辑的原因。我的大脑现在因想到这应该有效的可能原因而感到痛苦。请帮忙。谢谢!

我在代码块 16.01 和 Visual Studio Community 2015 上试过这个。输出是一样的。

0 投票
1 回答
74 浏览

c - '<' 在 if 语句中不起作用

所以我正在编写一个收银机程序。我已经完成了大部分工作。我的程序快完成了。但是我有一个问题。如果用户想去外卖,这个程序要求用户选择产品并计算最后的总金额。但是当用户必须输入现金支付时,我遇到了一个问题。如果用户提供的现金超过用户选择购买的产品总金额,它会计算并退回用户找零,但如果现金用户给定的数量少于用户选择的产品总量,它应该显示“给定的数量不足。添加更多”。但它以负数形式显示整数值。它以负数形式显示变化。我有给出了底部的输出示例。请帮助我。它太令人沮丧了。'<' 运算符似乎不起作用。!=,==,> 工作正常。谢谢!

但它应该显示

“给定的数量不足。添加更多”

它没有那样做。为什么?

0 投票
1 回答
244 浏览

c++ - C++ 使用 shared_ptr 但调用了我的对象的关系运算符?

我正在玩自己的堆类。我的模板堆类需要在模板类型上定义运算符“>”和“<”。

使用我编写的示例类的实例时,一切似乎都运行良好(并且在 int 上也运行良好)。但是,由于随着类实例从堆中的不同节点移动,实例的构造如此之多,所以我决定看看当我创建我的类的 shared_ptr 的堆时发生了什么。虽然我确实看到构造的实例数量下降了,但堆没有正常工作,因为它似乎智能指针“>”和“<”被调用,我猜这只是比较智能指针引用。

想到的一种解决方案是允许比较类型,就像许多 stl 类型一样,这样我就可以将自己的比较类型传递到堆类中,该类将取消引用 shared_ptr 并调用底层类型的操作。

我在 shared_ptr 上阅读的一些文档说它们实现了关系运算符(即 <),以便它们可以用作关联容器中的键。我正在尝试考虑何时可能要使用 shared_ptr 作为密钥,而不是拥有自己的特定密钥。

我的样本类型堆似乎工作正常:

将我的示例类包装在一个不起作用的 shared_ptr 中,例如。就我要完成的工作而言,堆约束没有得到满足。

我的示例 foo 类:

所以我认为很多人都遇到了类似的问题。只是想知道规定的解决方案是什么。正如我所提到的,我想我知道出现的可能是一个很好的解决方案,但我想检查一下,智能指针似乎可能会因为它们实现关系运算符而导致许多问题。

谢谢,尼克

0 投票
1 回答
2917 浏览

c - 零大于或等于零计算为假

这返回错误。

我完全不明白这一点。监视窗口(0 <= i && i <= 0)我还尝试让语句在我单独测试它们时读取它们0 <= i返回 false 而i <= 0返回 true。他们都应该是真的。我不确定这是否是一个精确的事情,但我不这么认为,因为我正在硬编码这些值。请帮助我理解这个基本问题。

如果它有帮助,我试图通过获取交点然后检查它是否在 x 和 y 起点和终点之间来评估一个点是否在一条线上。当我试图检查 x 或 y 何时在其轴上时,这会成为一个问题,然后您会遇到检查 0 是否介于或等于 0 和 0 之间的问题。它会落在线上。

0 投票
1 回答
67 浏览

c - 添加逻辑运算的结果是否定义了行为

将逻辑运算的结果相加(应该只是0or )是否可以(定义的行为1)?

如果我想计算大于零的数字,我可以这样做吗?(或者有更好的方法吗?)

0 投票
2 回答
129 浏览

c - C程序中的意外输出

我运行以下 C 程序

并将输出作为0. 再次,当我跑步时

我得到输出为1. 谁能解释这背后的逻辑?

0 投票
2 回答
705 浏览

ruby - Ruby 如何比较语义版本字符串?

在比较 Ruby 字符串时,我注意到一些意外行为。我将在下面写:

我在网上看到人们Gem::Version.new()用来比较语义版本的几个地方。不过,这不是我的问题。谁能向我解释一下 Ruby 是如何在没有任何库帮助的情况下比较语义版本字符串的?当我用数字比较运算符比较两个字符串时会发生什么?

从上面的测试我想我可以确认它不是简单地比较每个字符串的第一个/最后一个字符的 ascii 值。它也没有使用字符串长度作为我所期望的主要比较。