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 に答える