配列サイズC ++を見つける

Find Array Size C



配列は、同じデータ型の要素を持つコンテナです。配列の実際のサイズがわからない場合は、さまざまな方法で決定できます。配列のサイズについて話すとき、実際には、配列に存在する要素の数について話します。配列サイズを定義する場合もあれば、角かっこを空のままにする場合もあります。これは、値を格納する配列の容量のみを示す見かけのサイズです。たとえば、サンプルの配列宣言について考えてみます。

Int配列[] = {{123456}

ここでは、配列のサイズまたは配列の長さは6です。また、割り当てられる配列の合計サイズは表示されていません。実際のサイズは、さまざまな操作を適用することによって取得されます。この記事では、これらの操作を使用して配列のサイズを取得します。







例1

この図では、begin()とend()の概念を利用します。この方法により、配列のサイズを簡単に知ることができます。これらは、標準ライブラリで知られている2つのライブラリです。これらの2つの関数は、配列の始点と終点を示すイテレーターを返します。ヘッダーから始めて、配列ライブラリを使用します。これには、アレイに関連するすべての機能が含まれます。 main関数では、整数値を持つ配列を開始しました。



費用<<………。<<終わり(()。-ベギブ(()。<<

ここでは、配列サイズについては触れていません。 coutに続くdisplayステートメントでは、end()関数とbegin()関数を使用しています。これら2つの関数の相違点から、配列のサイズがわかります。これらの関数のパラメーターでは、配列を渡しました。これにより、実際のサイズが決定されます。これらの関数の結果の値が直接表示されます。







次に、出力に向かって移動します。これらのプログラムはLinuxで実行することになっているので、Ubuntuターミナルの関与が必要です。 C ++コードを使用しているため、コンパイラーを使用してコードをコンパイルする必要があります。それがG ++コンパイラです。コードをコンパイルした後、実行します。以下のコマンドは、使用した出力アプローチを示しています。

$ g++ -o code2code2。NS

$。/code2



これで出力が表示されます。 stdの場合の別の同様の例は、距離関数です。この距離では、begin()関数とend()関数を使用して計算されます。これは、これらの関数をstdで使用することで完了します。

Int n=時間::: 距離((時間:::始める((arr)。時間:::終わり((arr)。)。;

出力はcoutステートメントで取得されます。レコードを表示するには、コンパイラを再度使用してコードを実行します。

ここで、目的の出力が得られていることがわかります。

例2

この例は、C ++コードでのsizeof()関数の使用法に関連しています。この値は、データの実際のサイズをバイト形式で返すためです。さらに、配列を格納するために使用されるバイト数を返すことも扱います。つまり、この例では、最初のステップは、配列のサイズを宣言せずに配列を初期化することです。 sizeof()関数に使用される構文は次のとおりです。

インターナショナル= のサイズ((arr)。/のサイズ((arr[0])。;

ここで、arrは配列です。 arr [0]は、配列内の要素のインデックスを示します。

したがって、このステートメントは、配列サイズが存在するすべての要素のサイズで1つずつ除算されることを意味します。これは、長さの計算に役立ちます。関数から返される値を受け取り、格納するために整数変数を使用しました。

ここでは、同じcompile-executionメソッドを使用してコマンドプロンプトから出力を取得します。

出力には、配列のサイズが表示されます。これは、配列に存在する要素の数である6を意味します。

例3

この例には、size()関数の使用法が含まれています。この関数は、標準ライブラリSTLに配置されています。メインプログラムの最初のステップは配列宣言です。ここで、配列の名前にはサイズと整数値も含まれています。このメソッドは、結果を出力ステートメントに直接返します。

費用<<…。<<到着サイズ(()。<<

「arr」が配列の場合、結果をフェッチしたり関数にアクセスしたりするには、size関数を使用した配列の名前が必要です。

結果を表示するには、g ++コンパイラを使用して結果をコンパイルして実行します。

出力から、結果が配列の実際のサイズを示す目的の結果であることがわかります。

例4

配列のサイズは、ポインターが変数の値のアドレス/場所を格納するため、ポインターを使用して取得することもできます。次に、以下の例を考えてみましょう。

最初のステップは、通常どおりアレイを初期化することです。次に、ポインタは配列サイズに対して機能します。

Int len= *((配列+ 1)。- 配列;

これは、ポインターとして機能するコアステートメントです。 *は、配列内の任意の要素の位置を見つけるために使用されますが、&演算子は、ポインターを介して取得された位置の値を取得するために使用されます。これは、ポインタから配列サイズを取得する方法です。結果は端末を通して表示されます。答えは同じです。言及された配列のサイズは13と述べられていたので。

例5

この例では、テンプレート引数の演繹のアイデアを使用しました。テンプレート引数は、特別な種類のパラメータです。引数として渡すことができる通常の関数と同じように、任意のタイプの引数を渡すために使用されます。

配列がパラメータとして渡されると、アドレスを示すためにポインタに変換されます。特定の配列の長さを取得するには、このテンプレート引数推定のアプローチを使用します。 Stdは標準の短縮形です。

与えられた例を考慮して、配列サイズを取得するために使用されるテンプレートクラスを導入しました。これは、テンプレート引数のすべての機能を含むデフォルトの組み込みクラスです。

Constexpr std size_tサイズ((constNS((配列)。[NS])。noexcept{{

戻るNS;

}

これは、この概念の定数線です。出力は、coutステートメントで直接取得されます。

出力から、目的の出力である配列サイズが得られたことがわかります。

例6

std :: vectorを使用して、プログラムの配列サイズを取得します。これは一種のコンテナです。その機能は、動的配列を格納することです。さまざまな操作に対してさまざまな方法で機能します。この例を実行するために、すべてのベクトル関数を含むベクトルライブラリを使用しました。また、プログラムで使用されるcin、cout、endl、およびvectorステートメントを宣言します。配列はプログラムの最初に開始されます。出力は、ベクトルサイズごとにcoutステートメントに表示されます。

費用<<ベクトルサイズ <<int_array。サイズ(()。 <<endl;

これで、Ubuntuターミナルからの出力が表示されます。配列のサイズは、配列に存在する要素に対して正確です。

結論

このチュートリアルでは、配列の長さまたはサイズを取得するために別のアプローチを使用しました。一部は組み込み関数ですが、その他は手動で使用されます。