2024年10月22日

一日一項目 C++ 関数の戻り値を複数に ほーーう それがなにか?

Pythonは関数の戻り値を複数にするの簡単。Go言語も複数の戻り値を持てる。ならばC++だってできるはず・・・それは構造体使ったりポインター使ったりと工夫がありましてね、えーえー。

だが簡単に記述できるようになっているらしい。さっきchatGPT3.5先生に訊いたのEmbarrassed smile


1. std::tupleを使用する C++11以降
     C++17以降では構造化束縛という機能が追加されとる。タプルと構造化束縛で簡単さ~
2. std::pairを使用する       
3. 引数として参照を渡す
4. 構造体を返す

3,4は昔から知られているらしい。ワタクシは知らなかったがね。そもそも関数はreturnで値を一つ返したらワタクシの用途は十分なのであーーーたりして(笑)

まあしかし、簡単なのは tuple + 構造化束縛 ですわな。C++17以降なので古いコンパイラでは使えないが。

ワタクシはVisualStudio2022 CommunityはC++20で使うし無問題!!   どーせ例題動かして終わりだけど(´・ω・`)

最近、VScode, VisualStudio2022 Communityを共に使うなあ・・・ 例題を動かして終わりだけど。
それはね、VisualStudio2022 Communityでないと使えない・・・というわけでもないのだがVisualStudio2022 Community使うと簡単ってものがあってですね。
さらにVCpkgというパッケージ管理ツールを知ってですね、それでMatplot++, OpnCVなどインストールしてみたさ~。手動でProject Propertyを設定しないで済むって超・便利ですわ。

  今のところワタクシのVScodeで動くコンピュータ言語は C/C++, Python, Julia, Go, Rust, F#, C#, gFortran ですわ。これクリックで実行できて便利あるだわさ。
ま~例題動かして終わり・・・・そればっか
いいのだよ それで だって にんげんだもの byニセみつほ

ワタクシの趣味はコンピュータ言語の習得を試みる事である。試みることが趣味なのであって決して習得するぞのって高望みはしないのであるぞの。

ただ、いくつかのコンピュータ言語を例題を動かすだけでもやってみるとコンピュータ言語の共通項が見えてきた。この言語とこの言語は似ているが違いはこれだと気づくこともある。

Julia言語はPythonと似ているがPythonよりも高速だという宣伝している連中がいたので試してみたがJulia言語でグラフ描画すると描画までとっても遅いのだった。なあぁぁーーにいぃぃぃがPythonより高速だあぁぁぁ????   デタラメ吹聴するなやパカタレの鎌足!!
ま~これはJIT使っているからそうなってしまうのだとエライ人が弁明していた。

JITと言えばPythonもJITで高速化できる。Numbaというモジュールを使う。関数定義の直前に @jit と書くだけでよい。これは素晴らしいである。
だがC/C++の方が結局は最速なのであーーーーた。OpenMP使えばさらに高速になるぞの。

てな感じで雑学収集ですわ。

いいのだそれで。 だって にんげんだもの byニセみつほ

今日Google日本語辞書に登録したのは次の2つ
だって にんげんだもの byニセみつほ
パカタレの鎌足!!

既に登録してあるもの
ワタクシの趣味はコンピュータ言語の習得を試みる事である。

な、ワタクシってパカタレの鎌足!!みたいな感じでしょ。

浅学非才!! 不勉強が身に染みる ・・・・・ これも登録してあるんだよよよん。どや。

posted by toinohni at 12:12| 東京 ☀| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください