[解決済み] C++の配列とベクトルの比較
2022-04-21 18:46:55
質問
私はベクターがとても好きです。気の利いたことだし、速いし。でも、バラレイというものがあるのは知っています。なぜベクターではなく、バラクレイを使わなければならないのでしょうか?また、valarrayには構文上の利点があることは知っていますが、それ以外では、どのような場合に役に立つのでしょうか?
どのように解決するのですか?
バラレイ(値配列)は、Fortranの速度の一部をC++に導入することを目的としています。ポインターのバラレイを作らないから、コンパイラがコードを想定して、より良く最適化できるのです。(Fortranが高速である主な理由は、ポインタ型がないため、ポインタのエイリアシングが発生しないことです)。
Valarrayにもクラスがあり、合理的に簡単にスライスすることができますが、標準のこの部分にはもう少し仕事が必要です。サイズ変更は破壊的で イテレータがない C++11からイテレータが搭載されました。
だから、もし数字を扱っていて、利便性がそれほど重要でないなら、valarraysを使いましょう。そうでなければ、ベクトルがより便利です。
関連
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] std::vectorをハードコードされた要素で初期化する最も簡単な方法は何ですか?
-
[解決済み] std::vector<> からインデックスで要素を消すにはどうしたらいいですか?
-
[解決済み] 無名/匿名の名前空間と静的関数の比較
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】汝、std::vector を継承してはならない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?