logo

C++の配列クラス

C++11 からの配列クラスの導入により、C スタイルの配列のより良い代替手段が提供されました。 C スタイルの配列に対する配列クラスの利点は次のとおりです。 
 

  • 配列クラスはそれ自体のサイズを知っていますが、C スタイルの配列にはこのプロパティがありません。したがって、関数に渡すときに、配列のサイズを別のパラメーターとして渡す必要はありません。
  • C スタイルの配列では、次のリスクが高くなります。 配列がポインタに分解される 。配列クラスはポインタに分解されない
  • 一般に、配列クラスは C スタイルの配列よりも効率的で軽量で信頼性が高くなります。

配列に対する操作 :- 
1.at() :- この関数は、配列の要素にアクセスするために使用されます。 
2.get() :- この関数は、配列の要素にアクセスするためにも使用されます。この関数は配列クラスのメンバーではなく、クラス タプルからオーバーロードされた関数です。 
3. 演算子[] :- これは C スタイルの配列に似ています。このメソッドは、配列要素にアクセスするためにも使用されます。

CPP
// C++ code to demonstrate working of array // at() and get() #include   #include   // for array at() #include // for get() using namespace std; int main() {  // Initializing the array elements  array<int6> ar = {1 2 3 4 5 6};  // Printing array elements using at()  cout << 'The array elements are (using at()) : ';  for ( int i=0; i<6; i++)  cout << ar.at(i) << ' ';  cout << endl;  // Printing array elements using get()  cout << 'The array elements are (using get()) : ';  cout << get<0>(ar) << ' ' << get<1>(ar) << ' ';  cout << get<2>(ar) << ' ' << get<3>(ar) << ' ';  cout << get<4>(ar) << ' ' << get<5>(ar) << ' ';  cout << endl;  // Printing array elements using operator[]  cout << 'The array elements are (using operator[]) : ';  for ( int i=0; i<6; i++)  cout << ar[i] << ' ';  cout << endl;  return 0; } 

出力
The array elements are (using at()) : 1 2 3 4 5 6 The array elements are (using get()) : 1 2 3 4 5 6 The array elements are (using operator[]) : 1 2 3 4 5 6 

4.フロント() :- これは、配列の最初の要素への参照を返します。 
5.戻る() :- これは、配列の最後の要素への参照を返します。



CPP
// C++ code to demonstrate working of // front() and back() #include   #include   // including header file to use stl array and there function  using namespace std; int main() {  // Initializing the array elements  array<int6> ar = {1 2 3 4 5 6};  // Printing first element of array  cout << 'First element of array is : ';  int &a=ar.front();  cout <<a<< endl;  // Printing last element of array  cout << 'Last element of array is : ';  int &b=ar.back();  cout << b << endl;    //change first and last element of array using these references  a=10; //now 1 change to 10  b=60; //now 6 change to 60    //lets print array now   cout<<'array after updating first and last element n';  for (auto x: ar)  {  cout<<x<<' ';  }  cout<<endl;    return 0; } 

出力
First element of array is : 1 Last element of array is : 6 array after updating first and last element 10 2 3 4 5 60 


6. サイズ() :- 配列内の要素の数を返します。これは、C スタイルの配列にはない特性です。 
7. max_size() :- 配列が保持できる要素の最大数、つまり配列が宣言されているサイズを返します。 size() と max_size() は同じ値を返します。

CPP
// C++ code to demonstrate working of // size() and max_size() #include   #include   // for size() and max_size() using namespace std; int main() {  // Initializing the array elements  array<int6> ar = {1 2 3 4 5 6};  // Printing number of array elements  cout << 'The number of array elements is : ';  cout << ar.size() << endl;  // Printing maximum elements array can hold  cout << 'Maximum elements array can hold is : ';  cout << ar.max_size() << endl;  return 0; } 

出力
The number of array elements is : 6 Maximum elements array can hold is : 6

8.swap() :- swap() は、ある配列のすべての要素を他の配列と交換します。

CPP
// C++ code to demonstrate working of swap() #include   #include   // for swap() and array using namespace std; int main() {  // Initializing 1st array  array<int6> ar = {1 2 3 4 5 6};  // Initializing 2nd array  array<int6> ar1 = {7 8 9 10 11 12};  // Printing 1st and 2nd array before swapping  cout << 'The first array elements before swapping are : ';  for (int i=0; i<6; i++)  cout << ar[i] << ' ';  cout << endl;  cout << 'The second array elements before swapping are : ';  for (int i=0; i<6; i++)  cout << ar1[i] << ' ';  cout << endl;  // Swapping ar1 values with ar  ar.swap(ar1);  // Printing 1st and 2nd array after swapping  cout << 'The first array elements after swapping are : ';  for (int i=0; i<6; i++)  cout << ar[i] << ' ';  cout << endl;  cout << 'The second array elements after swapping are : ';  for (int i=0; i<6; i++)  cout << ar1[i] << ' ';  cout << endl;  return 0; } 

出力
The first array elements before swapping are : 1 2 3 4 5 6 The second array elements before swapping are : 7 8 9 10 11 12 The first array elements after swapping are : 7 8 9 10 11 12 The second array elements after swapping are : 1 2 3 4 5 6 

  9. 空() :- この関数は、配列サイズがゼロの場合に true を返し、それ以外の場合は false を返します。 
10.fill() :- この関数は、配列全体を特定の値で埋めるために使用されます。

CPP
// C++ code to demonstrate working of empty() // and fill() #include   #include   // for fill() and empty() using namespace std; int main() {  // Declaring 1st array  array<int6> ar;  // Declaring 2nd array  array<int0> ar1;  // Checking size of array if it is empty  ar1.empty()? cout << 'Array empty':  cout << 'Array not empty';  cout << endl;  // Filling array with 0  ar.fill(0);  // Displaying array after filling  cout << 'Array after filling operation is : ';  for ( int i=0; i<6; i++)  cout << ar[i] << ' ';  return 0; } 

出力
Array empty Array after filling operation is : 0 0 0 0 0 0