1

我经常在 Java 和 C++ 中使用 Stack 数据结构。这是一种标准的数据结构,在实现许多算法时非常常见。

我的问题是(以及让我发疯的事情)为什么 C++ 使用“top”作为函数名,它返回最顶层的元素值而不删除它,而 Java 使用“peek”作为它的方法名?

我知道没有数据结构的标准,但是计算机科学发展得还不够远以至于应该有一个标准吗?或者我只是一个新手,不知道标准......

你们这些专业程序员是否编写自己的数据结构库来遵守跨语言的通用接口?在我看来,这似乎是最好的选择。我用 C++、Java、Python、C、Perl 和 PHP 编写代码。除了为所有这些语言编写自定义界面之外,我没有看到任何其他方法。我喜欢“窥视”,但有什么我应该瞄准的标准吗?

4

2 回答 2

6

编写自定义接口只是为了使方法名称相同将是浪费大量时间。究竟有什么意义?即使有这样的功能,您也无法轻松地在您提到的语言之间复制和粘贴大多数代码。

就个人而言,我不喜欢 STL 向量方法 push_back() 的名称。如果它只是被称为 add(),我会更喜欢它,一方面它会减少打字。然而,我从来没有想过我可能会改变它。这样做只会降低我的代码的可移植性和对其他人的可读性。现在,我想这可以通过预处理器宏相当容易地完成,但即使这样在我看来也是浪费时间。

于 2012-09-01T05:39:51.080 回答
4

不,不可能,不会,也永远不会成为标准。无论如何,这两个名字都是有效的,如果你问我,top更有意义。此外,正如@mimicocotopus 所说,拥有相同的方法名称不会让您将粘贴代码从一种语言复制到另一种语言。此外,像 C++ 和 Java 这样的语言非常不同,并且支持不同的特性。如果一个标准必须使用最小的公分母,它就无法利用它实现的语言的所有特性。

不管怎样,还记得上次我们标准化的东西发生了什么吗?跨浏览器兼容性和移植 C 代码。光是想想就让人不寒而栗。

于 2012-09-01T05:43:14.767 回答