-2

特定の状況下でC/C ++がどのように機能するか、特に数学の世界へのアプローチをシンプルかつ効率的に保つことに関しては、私は本当に確信していません。 2つの言語:PythonとJava(およびhtml、js、phpなどのwwwの世界の他の言語...)。これらはすべて、設計方法がC++とは大きく異なります。

私が気に入らないのは、おそらく構文とパフォーマンスの組み合わせです。たとえば、C ++は行列やベクトルをネイティブにサポートしておらず、すべてがdoubleとfloatになり、推定しているものに常に注意を払う必要があります。バイナリ演算が原因で予期しない結果が生じることがあります。行列はプリミティブ型ではないため、「数学」であっても、数学を特別に最適化することなく、他のカスタムクラスと同じように扱われます。最適化する。

繰り返しますが、C ++は私が知っている唯一のコンパイル言語であり、ある種のパフォーマンスに適しているため、提供されているものを他のものと実際に比較することはできませんが、C++の世界のいくつかの側面は面倒でありません私のニーズに合うように本当に形作られているので、エンジンを構築するのにおそらく最適な言語であり、私のアプリケーションの大部分ですが、3Dアプリケーションで完璧なコンパニオンになる言語についていくつかの提案をいただければ幸いです。数学がたくさんあるアプリケーション。

4

1 に答える 1

4

私はあなたの考えについて確信が持てません。

数学の部分について:ネイティブC ++でそれを行うのは面倒だと、私は信じています。ただし、開発と実行時のパフォーマンスの両方で効率的な方法で計算を行うのに役立つ多くのライブラリが利用可能です。

たとえば、Eigenライブラリを見てください。Eigenは、計算を最大限に活用するために、テンプレートとコンパイラの最適化を多用しています。私はまだ大きな最適化の可能性を見つけていません(まあ、BLASなどのプロセッサ固有の最適化を使用することでいつでも少し得ることができますが、それはEigenを使用して行うこともできます)。

しかし、私は3Dパートの専門家ではありません。

独自に必要になる可能性のあるすべての機能を提供する言語はありません。それがライブラリの目的です。C++で発生するほとんどの問題に適したライブラリを見つけることができるはずです。

構文上の問題について:C++をどこまで掘り下げたかはわかりません。私は毎日新しいことを学びます-私が今学び始めたときに10行のコードを必要としていたことは、パフォーマンスや読みやすさを失うことなく、通常はコードの明確さを増すことなく、1つで行うことができます。したがって、それはすべて経験に関するものです。

于 2012-11-29T20:24:56.333 に答える