问题标签 [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.

0 投票
9 回答
107311 浏览

c++ - 如果未找到搜索结果,则返回“NULL”对象

我对 C++ 很陌生,所以我在学习时倾向于使用很多 Java 主义进行设计。无论如何,在 Java 中,如果我有一个带有“搜索”方法的类,它会TCollection< T >与特定参数匹配的对象返回一个对象,我将返回该对象,如果在集合中找不到该对象,我将返回null. 然后在我的调用函数中我会检查if(tResult != null) { ... }

在 C++ 中,我发现null如果对象不存在,我就无法返回值。我只想返回一个 T 类型的“指示符”,通知调用函数没有找到任何对象。我不想抛出异常,因为这并不是真正的异常情况。

这就是我的代码现在的样子:

我怎样才能改变它,以便我可以给出那种标记?

0 投票
2 回答
223 浏览

c++ - C++/C 中是否有类似方法/函数哨兵的东西?

在 Objective-C 中,你可以这样说:

如果你不熟悉objective-c,它说我想要一个NSArray类型的对象,anArray,我想调用方法arrayWithObjects,然后它充当哨兵并接受尽可能多的参数(在这种情况下是对象),直到它达到零。

有没有办法实现这样的事情:

函数的方法在哪里可以接受尽可能多的参数,直到它达到某个键值?

现在,我知道你可以在 C 和 C++ 中做标记的东西,但是有没有办法像在 Objective-C 中那样为方法提供类似的东西?

0 投票
1 回答
260 浏览

python - 为什么python引用中的绑定实例方法不相等?

0 投票
3 回答
1533 浏览

c++ - 二进制文件特殊字符

我正在编写一个后缀数组排序,这个算法将一个标记字符附加到原始字符串。此字符不得在原始字符串中。

由于该算法将处理二进制文件字节,是否有任何特殊字节字符可以确保在任何二进制文件中都找不到?如果存在,我如何在 C++ 编码中表示这个字符?

我在linux上,我不确定它是否有所作为。

0 投票
4 回答
738 浏览

c - C/GL:使用 -1 作为无符号整数数组的标记

我在一些 GL 代码中传递了一个顶点索引数组......每个元素都是一个 GLushort

我想用一个哨兵终止,以避免每次都在数组本身旁边费力地传递数组长度。

我不能使用 0 来终止,因为某些元素的值为 0

我可以使用-1吗?

据我了解,这将包含 GLushort 可以表示的最大整数,这将是理想的。

但是这种行为在 C 中是否得到保证?

(我找不到这种类型的 MAX_INT 等效常量,否则我会使用它)

0 投票
1 回答
157 浏览

language-agnostic - 何时使用哨兵值?

我最近不得不使用 GPS 位置 API,其中每个位置对象都有两个属性altitudeverticalAccuracy. 负数verticalAccuracy表示altitude无效,而通常较小但正数的值verticalAccuracy实际上意味着altitude更精确(因为它可能偏离垂直距离 - 我将讨论为什么调用此度量verticalAccuracy而不是verticalInaccuracy为了其他时间)。

这让我想到:什么时候像这个 API 那样使用哨兵值是个好主意,什么时候显式地创建一个单独的hasValidAltitude属性更好?还有其他选择吗?

0 投票
2 回答
959 浏览

c - 如何创建具有自定义标记值的可变参数函数?

gnu 的 C 文档指出,如果函数具有,则__attribute__((sentinel))它必须NULL作为函数的最后一个参数。

是否可以有任何其他值作为结束参数列表的标记?

0 投票
3 回答
11138 浏览

algorithm - C语言中的哨兵是什么?我正在学习合并排序并在合并步骤中使用哨兵作为无穷大

我正在学习合并排序,并在合并步骤中使用哨兵作为无穷大。

这是 Cormen 书中的算法。为什么我们在第 8 步和第 9 步中使用无穷大???

0 投票
1 回答
2667 浏览

java - 这个 contains(T entry) 方法有什么问题?爪哇。链表

我正在制作一个链表类并尝试实现此contains()方法。

我有headtail哨兵节点,所以我的循环从head.next. length是列表的大小。关于我能给你们的一切:O

0 投票
2 回答
442 浏览

c++ - 我们如何在不将哨兵添加到平均值的情况下打破循环?

按照现在的代码,哨兵被包括在平均值的计算中。关于如何在不包括哨兵的情况下打破循环的任何指示?