C ++のアレイディケイとは何ですか?
アレイのタイプと次元の喪失は、アレイの減衰として知られています。これは、ポインタまたは値によって配列を関数に渡すときに発生します。最初のアドレスは、ポインタである配列に送信されます。そのため、配列のサイズは元のサイズではありません。
これは、C++言語での配列減衰の例です
例
#include<iostream> using namespace std; void DisplayValue(int *p) { cout << "New size of array by passing the value : "; cout << sizeof(p) << endl; } void DisplayPointer(int (*p)[10]) { cout << "New size of array by passing the pointer : "; cout << sizeof(p) << endl; } int main() { int arr[10] = {1, 2, }; cout << "Actual size of array is : "; cout << sizeof(arr) <endl; DisplayValue(arr); DisplayPointer(&arr); return 0; }
出力
Actual size of array is : 40 New size of array by passing the value : 8 New size of array by passing the pointer : 8
アレイの減衰を防ぐため
アレイの減衰を防ぐには、次の2つの方法があります。
-
配列のサイズをパラメーターとして渡すことで配列の減衰を防ぎ、配列のパラメーターでsizeof()を使用しないでください。
-
参照によって配列を関数に渡します。配列がポインタに変換されるのを防ぎ、配列の減衰を防ぎます。
これは、C++言語での配列の減衰を防ぐ例です。
例
#include<iostream> using namespace std; void Display(int (&p)[10]) { cout << "New size of array by passing reference: "; cout << sizeof(p) << endl; } int main() { int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; cout << "Actual size of array is: "; cout << sizeof(arr) <<endl; Display(arr); return 0; }
出力
Actual size of array is: 40 New size of array by passing reference: 40
-
配列を最大最小形式で再配置するC++プログラム
ソート/非ソート方式で配置できる整数配列が与えられます。タスクは、値が並べ替えられていない場合、最初に配列を並べ替えてから、配列の最初の要素が最大値、2番目が最小値、3番目が2番目に大きい値、4番目が次のように配列を配置することです。 2番目に小さい値など。 このためのさまざまな入出力シナリオを見てみましょう- 入力 − int arr [] ={7、5、2、3、4、9、10、5} 出力 −配置前の配列:2 3 4 5 5 7 9 10最大最小形式での配列の再配置は次のとおりです:10 2 9 3 7 4 5 5 説明 − {7、5、2、3、4、9、10、5}の値を含む整数型の配列が
-
イメージアレイとは何ですか? C++の例で説明する
配列は、データのコレクションを格納および取得するための便利な方法です。 OpenCVでは、この概念を使用して、画像配列に複数の画像を読み込み、配列のインデックス番号を使用してそれらを表示できます。 次のプログラムは、マトリックス配列に複数の画像をロードし、インデックス番号で呼び出される配列の画像を表示します。 例 #include<iostream> #include<opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; int main(int argc,const char**