16

私はさまざまな言語でのプログラミングにかなりのコツがあります。私は MATLAB を使用して (過去数か月間) 研究用にコードを実装してきましたが、MATLAB v$ C の実行速度の違いに初めて気付きました (非常に高速なプロトタイピング機能が気に入っています)

私は C++ を手に入れて、自分の研究で使い始めたいと思っています。私は OOP を認識しており、かなりの量の Java (比較的前) と C++ (さらに前) をプログラミングしました。私は本当にC++に深く入りたいと思っているので、同じリソースの提案が必要です:

  • C++ を本当に有効に活用するには、どの C++ のもの (STL と.) を習得する必要がありますか?
  • 始めるのに適したチュートリアル/マニュアルは何ですか?
  • C++ の数値/科学ライブラリは何ですか? GSL? C++ の Scipy/Numpy に相当する (機能) はありますか?

Linux でプログラミングするので、 g++ を使用します。

以前の SO の質問へのポインタも高く評価されます。

4

5 に答える 5

7

できるだけ早く並列プログラミングを理解する必要があります。メッセージの受け渡しについては、 Karniadakis と Kirbyによるこの本が好きです。OpenMP に関する本のうち、分散メモリ プログラミングについては、この本が一番です。

それらにアクセスできる場合は、Intel の Threading Building Blocks、Maths Kernel Library、および Integrated Performance Primitives を使用するとよいでしょう。そうでない場合は、オープン ソースの代替手段がたくさんあります。Netlibを調べてください。

ああ、必須のBOOSTをほとんど忘れていました。

于 2010-11-25T23:14:59.667 に答える
5

Numpy のような数値的なものに関しては、両方を確認する必要があります。

ブリッツ++ http://www.oonumerics.org/blitz/

Jama/TNT http://math.nist.gov/tnt/download.html

于 2010-11-25T23:12:39.680 に答える
4

ライブラリ側では、 Armadilloをチェックしてください。MATLAB の配列操作構文をほぼ完全に利用でき、内部で LAPACK と BLAS (ATLAS) を使用します。

于 2010-11-29T07:08:33.950 に答える
2

このチュートリアルは絶対にうまくいきますが、最初は取り組みたくないかもしれません。

http://www.parashift.com/c++-faq/

次のようなサイトを使用して、STL (標準テンプレート ライブラリ) やその他のものをよく読んでください。

http://cplusplus.com/

そして、Boost ライブラリをチェックしてください:

http://www.boost.org/

C++ を本当にうまく利用するには、少なくとも STL を学ぶ必要があります。それだけで多くの時間を節約できますが、parashift が言及しているように、動的バインディングを使用しない場合、C++ OOP はオブジェクトを使用してプログラミングするだけです。

于 2010-11-25T23:15:54.863 に答える
-2

TRNG は並列乱数生成ライブラリです。複数の独立したストリームを作成でき、クラスターで使用するように設計されています。

于 2013-08-10T18:37:54.110 に答える