C++のstd::arrayとは何ですか?

C Nostd Arraytoha Hedesuka



C++ には、要素のコレクションを格納および操作するためのさまざまなデータ構造が用意されています。そのようなデータ構造の 1 つは、 std::配列 、C++11 標準ライブラリで導入されました。この記事では、std::array、その構文、例、および C++ での利点について学習します。

C++ の std::array とは

C++ では、 std::配列 一定数の同じデータ タイプのアイテムを保持するために使用されます。の std::配列 コンテナーは、より安全で使いやすく、パフォーマンスが優れているため、C スタイルの配列に代わるものを提供します。

C++ の標準ライブラリのコンポーネントであるこのクラスは、同じデータ型の要素を格納およびアクセスするための実用的かつ効果的なアプローチを提供します。のサイズなので、 std::配列 コンパイル時に既知である場合、動的スケーリングの実行時のオーバーヘッドが削減されます。配列のサイズはテンプレート パラメータによって設定され、 std::配列 連続したメモリに保持されます。







C++ で std::array を宣言する

あなたは宣言することができます std::配列 好き:



標準 :: 配列 < 整数 4 > 到着 ;

上記の構文は、次の名前の配列を宣言します 到着 4 要素の固定サイズで、各要素は int 型です。



std::array の例

例 1: 以下は、イニシャルを付ける簡単な例です。 std::配列 C++ で:





#include <配列>

#include

整数 主要 ( ) {

標準 :: 配列 < 整数 4 > 到着 = { 4 6 2 1 } ;

ために ( 整数 = 0 ; < 到着 サイズ ( ) ; ++ ) {

標準 :: カウト << 到着 [ ] << ' ' ;

}

標準 :: カウト << 標準 :: エンドル ;

戻る 0 ;

}

出力



例 2: 使用することもできます std::配列 配列内の要素にアクセスします。コードを以下に示します。

#include <配列>

#include

整数 主要 ( ) {

標準 :: 配列 < 整数 3 > 到着 = { 1 2 3 } ;

標準 :: カウト << 「最初の要素は」 << 到着 [ 0 ] << 標準 :: エンドル ;

標準 :: カウト << '2 番目の要素は' << 到着 ( 1 ) << 標準 :: エンドル ;

標準 :: カウト << 「第三の要素は」 << 到着 戻る ( ) << 標準 :: エンドル ;

戻る 0 ;

}

出力

例 3: 次の例は、特定の位置で配列から要素を出力する方法を示しています。 std::配列 C++で。

#include

#include <配列>

整数 主要 ( )

{

標準 :: 配列 < 整数 4 > 到着 = { 4 6 2 1 } ;

標準 :: カウト << 到着 [ 3 ] << 標準 :: エンドル ;

戻る 0 ;

}

出力

C++ での std::array の利点

C++ の従来の配列とは異なり、 std::配列 さまざまな機能を提供します。

1: 直感的な構文

std::配列 初期化のためのより直感的な構文があり、初期化子リストを使用して初期化できます。これにより、配列を初期化するためのより簡潔で読みやすい方法が提供されます。

2: 引数として渡される

std::配列 関数に引数として渡すことができ、関数から返すこともできます。

3: メモリ管理

を使用する主な利点の 1 つ std::配列 簡単で効率的なメモリ管理を提供するということです。これは、手動でメモリを割り当てたり解放したりする必要がないことを意味します。

4: 自動境界チェック

事実 std::配列 C スタイルの配列に対する自動境界チェックを提供することは、その主な利点の 1 つです。これは、プログラムが配列の定義された範囲外の要素にアクセスしようとすると、コンパイラがエラーを生成することを意味します。バッファ オーバーフロー、セグメンテーション フォールト、およびメモリ リークは、バウンド チェックが回避に役立つ、頻繁に発生するプログラミングの問題のほんの一部です。

5: 便利な機能を提供

std::配列 には、イテレータ、size()、front()、back()、fill()、at() などの便利な関数がいくつか用意されており、これも別の利点です。これらの関数を使用すると、複雑でエラーが発生しやすいコードを使用せずに、配列要素を簡単に操作できます。たとえば、反復子を使用すると、配列の要素間を簡単に移動できます。また、fill() メソッドを使用すると、配列の要素セット全体に単一の値を提供できます。

結論

C++ では、 std::配列 クラスは、いくつかの便利な関数と、型と範囲の安全性の利点とともに、固定サイズの配列を操作する実用的な方法を提供します。初期化と境界チェックについては、より明確で理解しやすい構文が提供され、多くの典型的なプログラミングの間違いを回避するのに役立ちます。固定サイズの配列を使用する必要がある状況の大部分では、std::array の使用が推奨されます。これは、それらを操作するためのより最新で安全な方法を提供するためです。