[解決済み] なぜC++ではタプルの使用が一般的ではないのですか?
2022-08-02 12:15:37
疑問点
なぜ誰もC++でタプルを使わないのでしょうか? Boostタプル・ライブラリ やTR1の標準ライブラリでは、なぜ誰もタプルを使わないのだろう?私は多くのC++のコードを読みましたが、ごく稀にタプルの使用を見ますが、タプルが多くの問題を解決する場所をよく見ます(通常、関数から複数の値を返します)。
タプルはこのようにあらゆる種類のクールなことを行うことを可能にします。
tie(a,b) = make_tuple(b,a); //swap a and b
確かにこれよりはマシですね。
temp=a;
a=b;
b=temp;
もちろん、いつでもできることです。
swap(a,b);
しかし、3つの値を回転させたい場合はどうすればよいのでしょうか?タプルを使ってこれを行うことができます。
tie(a,b,c) = make_tuple(b,c,a);
タプルはまた、関数から複数の変数を返すことをより簡単にします。これはおそらく、値を交換するよりもずっと一般的なケースでしょう。値を交換するよりもはるかに一般的なケースでしょう。
私が考えていないようなタプルの大きな欠点があるのでしょうか?もしそうでなければ、なぜほとんど使用されないのでしょうか?より遅いのでしょうか?あるいは、人々がそれらに慣れていないだけでしょうか?タプルを使用するのは良い考えですか?
どのように解決するのですか?
まだ標準化されていないからです。 標準でないものは、ずっと高いハードルがあります。 Boost の断片は、プログラマーがそれを切望していたために普及しました。 (hash_mapが思い浮かびます)。 しかし、タプルは便利ですが、人々がそれを気にするほど、圧倒的で明確な勝利ではありません。
関連
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?
-
[解決済み] リスト/タプルを指定されたインデックスにある要素でソートするには?
-
[解決済み] なぜ (int)x ではなく static_cast<int>(x) を使うのですか?
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較