1

私は C++ を学んでいます。私はすでにPHPに堪能です。C++ と PHP の違いを調べました。私が読んだ記事の中で、PHP には C++ よりもはるかに多くの組み込み関数があるとは言及されていませんでした。

今、私は C++ で文字列を分割しようとしていますが、これを見つけました: C++ で文字列を分割しますか? PHPでは、私は簡単に行うことができますexplode($delimiter,$string)

何か不足していますか?それとも、PHP には C++ よりも多くの組み込み関数があるというのは本当ですか。

4

6 に答える 6

2

C ++とPHPはどちらも、新しい関数とクラスを含むライブラリの概念を持っています。

多くのPHP関数は、より複雑なことを行うためのより単純な方法です。たとえば、とを使用しexplodeて作成できます。splitstrpos

C ++についても同じことが言えますが、C ++はその点でよりスリムであることがわかります。確かに、独自explodeに作成するか、他の誰かが作成した他のライブラリを使用する必要があります。

どちらが多いかについては、重要ではないと思います。どちらも拡張可能です。

于 2012-04-05T18:52:37.287 に答える
1

PHP は C++ に、Java は Javascript に

それらは全体として完全に異なる言語です。

はい、PHP は C++ で構築されています。これは、同じ機能を持つという意味ではありません。

他の言語は、PHP や C++、その他の高水準言語に組み込まれたマシン コードで構築されましたが、これは私ができるという意味ではありません。PHP1000101010111010011000では、何かを意味します...

于 2012-04-05T18:56:21.773 に答える
1

C++ はアセンブリ言語に近いです。また、std ライブラリ (および std++ ライブラリ) には何千もの関数部分がありますが、PHP (C/C++ で記述されている) などのインタープリター言語にはさらに多くのライブラリがあると感じても驚くことではありません。

C と C++ はそれぞれ、プログラマーと基礎となるマシンとの間の干渉を最小限に抑えようとします (移植性の類似性を維持しながら)。したがって、ライブラリの作成はプログラマに任されており、目の前のタスクに合わせて実装する必要があります。これにより、より多くの作業が必要になりますが、結果として得られるコードは非常に効率的であり、パフォーマンスが大幅に向上します。

もちろん、パフォーマンスの向上が労力の増加のトレードオフに値するかどうかを判断するのはあなた次第です。

勉強頑張ってください。

于 2012-04-05T19:01:31.650 に答える
0

C ++にPHPのような特定の関数がないからといって、C++の標準ライブラリが全体的に小さいことを意味するわけではありません。C ++標準ライブラリには、PHPにはない機能もたくさんあると思います。たとえば、PHPの標準ライブラリにはコンパイル時の有理演算がありません。

どの言語がより大きな標準ライブラリを持っているのかわかりません。各言語のドキュメントを入手して、関数の数を数えるだけです。

于 2012-04-05T19:29:22.233 に答える
0

C++ は PHP より機能が少ないですか?

PHP と C++ には同じ量の関数があります: 1 つの関数構成体で、特定の大量の関数全体を表現できます。C++ では、将来この制限に達した場合に備えて、PHP よりも簡単に可能な関数の数を増やす方がおそらく簡単です。

何か不足していますか?それとも、PHP には C++ よりも多くの組み込み関数があるというのは本当ですか。

私は C++ の専門家ではありませんが、組み込み関数に関しては、PHP は C++ よりも「多く」あると確信していますが、言語があまりにも異なるため、そのように比較することはできません。C / C++ では、デフォルトで多くの組み込み関数を持たないことが賢明ですが、PHP では逆です。PHP は使用するためにそこにあるスクリプト言語であるため、何年にもわたって関数が詰め込まれてきました。

または、次のように定式化します。C++ を言語として使用して、後で PHP バインディング (拡張機能) としてコンパイルされる関数を生成します。これらの関数は、拡張機能を PHP にロードする限り使用できます。しかし、あなたはそれを逆にすることは決してありません。

于 2012-04-05T21:35:47.990 に答える
0

C++ の美しさの一部は、C++ が基本的であり、名前空間を汚染する組み込み関数がないという事実にあります。

他の言語に組み込まれている関数/オブジェクト/アルゴリズムの多くは、C++ の標準テンプレート ライブラリ (STL) の一部です。STL はコア言語仕様の一部ですが、関数を使用するには、適切なヘッダーを含める必要があります。

C++ を学習したい場合は、STL および Boost ライブラリに慣れておく必要があります。

于 2012-04-05T19:01:56.813 に答える