C++和Java数据结构中的重叠:堆栈"顶层"与"偷看"

dva*_*ria -1 c++ java stack data-structures

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

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

我知道数据结构没有标准,但是计算机科学还没有达到应该有标准吗?或者我只是一个新手来了解一个标准......

你们这些专业程序员是否编写了自己的数据结构库,这些库遵循跨语言的通用接口?在我看来,这似乎是最好的事情.我用C++,Java,Python,C,Perl和PHP编写代码.我只是没有看到任何其他方式,但为所有这些语言编写自定义界面.我喜欢"偷看",但有什么标准我应该瞄准吗?

mim*_*pus 5

编写自定义界面只是为了使方法名称相同将是一个巨大的浪费时间.究竟是什么意思?即使使用这样的功能,您也无法在您提到的语言之间轻松复制和粘贴大多数代码.

就个人而言,我不喜欢STL矢量方法push_back()的名称.我更喜欢它只是被称为add(),一方面它更少打字.然而,我从未想过我可能会改变它.这样做只会降低我的代码的可移植性,降低其他人的可读性.现在,我认为使用预处理器宏可以很容易地做到这一点,但即使这样也会浪费我的时间.