问题标签 [sentinel]
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.
c++ - 如果未找到搜索结果,则返回“NULL”对象
我对 C++ 很陌生,所以我在学习时倾向于使用很多 Java 主义进行设计。无论如何,在 Java 中,如果我有一个带有“搜索”方法的类,它会T
从Collection< T >
与特定参数匹配的对象返回一个对象,我将返回该对象,如果在集合中找不到该对象,我将返回null
. 然后在我的调用函数中我会检查if(tResult != null) { ... }
在 C++ 中,我发现null
如果对象不存在,我就无法返回值。我只想返回一个 T 类型的“指示符”,通知调用函数没有找到任何对象。我不想抛出异常,因为这并不是真正的异常情况。
这就是我的代码现在的样子:
我怎样才能改变它,以便我可以给出那种标记?
c++ - C++/C 中是否有类似方法/函数哨兵的东西?
在 Objective-C 中,你可以这样说:
如果你不熟悉objective-c,它说我想要一个NSArray类型的对象,anArray,我想调用方法arrayWithObjects,然后它充当哨兵并接受尽可能多的参数(在这种情况下是对象),直到它达到零。
有没有办法实现这样的事情:
函数的方法在哪里可以接受尽可能多的参数,直到它达到某个键值?
现在,我知道你可以在 C 和 C++ 中做标记的东西,但是有没有办法像在 Objective-C 中那样为方法提供类似的东西?
c++ - 二进制文件特殊字符
我正在编写一个后缀数组排序,这个算法将一个标记字符附加到原始字符串。此字符不得在原始字符串中。
由于该算法将处理二进制文件字节,是否有任何特殊字节字符可以确保在任何二进制文件中都找不到?如果存在,我如何在 C++ 编码中表示这个字符?
我在linux上,我不确定它是否有所作为。
c - C/GL:使用 -1 作为无符号整数数组的标记
我在一些 GL 代码中传递了一个顶点索引数组......每个元素都是一个 GLushort
我想用一个哨兵终止,以避免每次都在数组本身旁边费力地传递数组长度。
我不能使用 0 来终止,因为某些元素的值为 0
我可以使用-1吗?
据我了解,这将包含 GLushort 可以表示的最大整数,这将是理想的。
但是这种行为在 C 中是否得到保证?
(我找不到这种类型的 MAX_INT 等效常量,否则我会使用它)
language-agnostic - 何时使用哨兵值?
我最近不得不使用 GPS 位置 API,其中每个位置对象都有两个属性altitude
和verticalAccuracy
. 负数verticalAccuracy
表示altitude
无效,而通常较小但正数的值verticalAccuracy
实际上意味着altitude
更精确(因为它可能偏离垂直距离 - 我将讨论为什么调用此度量verticalAccuracy
而不是verticalInaccuracy
为了其他时间)。
这让我想到:什么时候像这个 API 那样使用哨兵值是个好主意,什么时候显式地创建一个单独的hasValidAltitude
属性更好?还有其他选择吗?
c - 如何创建具有自定义标记值的可变参数函数?
gnu 的 C 文档指出,如果函数具有,则__attribute__((sentinel))
它必须NULL
作为函数的最后一个参数。
是否可以有任何其他值作为结束参数列表的标记?
algorithm - C语言中的哨兵是什么?我正在学习合并排序并在合并步骤中使用哨兵作为无穷大
我正在学习合并排序,并在合并步骤中使用哨兵作为无穷大。
这是 Cormen 书中的算法。为什么我们在第 8 步和第 9 步中使用无穷大???
java - 这个 contains(T entry) 方法有什么问题?爪哇。链表
我正在制作一个链表类并尝试实现此contains()
方法。
我有head
和tail
哨兵节点,所以我的循环从head.next
. length
是列表的大小。关于我能给你们的一切:O
c++ - 我们如何在不将哨兵添加到平均值的情况下打破循环?
按照现在的代码,哨兵被包括在平均值的计算中。关于如何在不包括哨兵的情况下打破循环的任何指示?