C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での配列型の操作


アレイ は、同じデータ型の複数のデータ要素を連続したメモリ位置に格納するC++のデータ構造です。

C ++プログラミング言語には、配列型を操作するための組み込み関数があります。一部の関数は、多次元配列にも適用できます。配列ヘッダーファイルには、C++プログラミング言語で配列を操作するための関数が含まれています。

C++で配列を操作するための一般的な方法は次のとおりです-

is_array()

この関数は、関数に渡される変数が配列型であるかどうかを確認するために使用されます。このメソッドは、std::arrayでさえチェックで拒否される配列の認識に厳密です。戻り値の型は整数です。つまり、配列が渡された場合はtrue(1)を返し、それ以外の場合はFalse(0)を返します。

#include<type_traits>
#include<iostream>
#include<array>
#include<string>
using namespace std;
int main(){
   cout<<"Checking if int is an array ? : ";
   is_array<int>::value?cout<<"True":cout<<"False";
   cout<<"\nChecking if int[] is an array? : ";
   is_array<int[6]>::value?cout<<"True":cout<<"False";
   cout<<"\nChecking if 2D Array is an array? : ";
   is_array<int[2][3]>::value?cout<<"True":cout<<"False";
   cout<<"\nChecking if String is an array? : ";
   is_array<string>::value?cout<<"True":cout<<"False";
   cout<<"\nChecking if Character Array is an array? : ";
   is_array<char[4]>::value?cout<<"True":cout<<"False";
   cout << endl;
   return 0;
}

出力

Checking if int is an array ? : False
Checking if int[] is an array? : True
Checking if 2D Array is an array? : True
Checking if String is an array? : False
Checking if Character Array is an array? : True

is_same()

この関数は、渡された2つのタイプの設計図がまったく同じであるかどうか、つまり両方のタイプが同じである必要があるかどうかを確認するために使用されます。概念を明確にするこの例を見てみましょう-

#include<type_traits>
#include<iostream>
#include<array>
#include<string>
using namespace std;
int main(){
   cout << "Checking if 1D array is same as 1D array (Different sizes) ? : " ;
   is_same<int[3],int[4]>::value?cout<<"True":cout<<"False";
   cout << "\nChecking if 1D array is same as 1D array? (Same sizes): " ;
   is_same<int[5],int[5]>::value?cout<<"True":cout<<"False";
   cout << "\nChecking If 2D array is same as 1D array? : ";
   is_same<int[3],int[3][4]>::value?cout<<"True":cout<<"False";
   cout << "\nChecking if Character array is same as Integer array? : " ;
   is_same<int[5],char[5]>::value?cout<<"True":cout<<"False";
   return 0;
}

出力

Checking if 1D array is same as 1D array (Different sizes) ? : False
Checking if 1D array is same as 1D array? (Same sizes): True
Checking If 2D array is same as 1D array? : False
Checking if Character array is same as Integer array? : False

ランク()

ランク関数は、渡された配列のランクを返すために使用されます。 ランク 配列の次元を意味します。配列のランクの整数値を返します。

#include<type_traits>
#include<iostream>
using namespace std;
int main(){
   cout<<"Print rank for the following types of arrays : \n";
   cout<<"integer : "<<rank<int>::value<<endl;
   cout<<"1D integer array (int[]) : "<< rank<int[5]>::value<<endl;
   cout<<"2D integer array (int[][]) : "<<rank<int[2][2]>::value<<endl;
   cout<<"3D integer array (int[][][]) : "<<rank<int[2][3][4]>::value<<endl;
   cout<<"1D character array : "<<rank<char[10]>::value<<endl;
}

出力

Print rank for the following types of arrays :
integer : 0
1D integer array (int[]) : 1
2D integer array (int[][]) : 2
3D integer array (int[][][]) : 3
1D character array : 1

extend()

C ++のextent()メソッドは、配列の次元のサイズを返します。このメソッドには、配列とディメンションの2つの入力パラメーターがあります。

#include<type_traits>
#include<iostream>
using namespace std;
int main(){
   cout<<"Printing the length of all dimensions of the array arr[2][45][5] :\n";
   cout<<"1st dimension : "<<extent<int[2][45][5],0>::value<<endl;
   cout<<"2nd dimension : "<<extent<int[2][45][5],1>::value<<endl;
   cout<<"3rd dimension : "<<extent<int[2][45][5],2>::value<<endl;
   cout<<"4th dimension : "<<extent<int[2][45][5],3>::value<<endl;
}

出力

Printing the length of all dimensions of the array arr[2][45][5] :
1st dimension : 2
2nd dimension : 45
3rd dimension : 5
4th dimension : 0

remove_extent()

remove_extent関数は、多次元配列の次元を削除するために使用されます。配列の最初の次元を削除します。

#include<type_traits>
#include<iostream>
using namespace std;
int main(){
   cout<<"Removing extent of the array arr[2][5][4] : \n";
   cout<<"Initial rank : "<<rank<int[2][5][4]>::value<<endl;
   cout<<"The rank after removing 1 extent is : " ;
   cout << rank<remove_extent<int[20][10][30]>::type>::value << endl;
   cout << "length of 1st dimension after removal is :";
   cout<<extent<remove_extent<int[20][10][30]>::type>::value << endl;
}

出力

Removing extent of the array arr[2][5][4] :
Initial rank : 3
The rank after removing 1 extent is : 2
length of 1st dimension after removal is :10

remove_all_extents()

この関数は、配列のすべての次元を一度に削除するために使用されます。配列は、配列と同じ変数に変更されます。

#include<type_traits>
#include<iostream>
using namespace std;
int main(){
   cout<<"Removing all extents of the array arr[2][5][4] : \n";
   cout<<"Initial rank : "<<rank<int[2][5][4]>::value<<endl;
   cout<<"The rank after removing all extents is : " ;
   cout << rank<remove_all_extents<int[20][10][30]>::type>::value << endl;
   cout << "length of 1st dimension after removal is :";
   cout<<extent<remove_all_extents<int[20][10][30]>::type>::value << endl;
}

出力

Removing all extents of the array arr[2][5][4] :
Initial rank : 3
The rank after removing all extents is : 0
length of 1st dimension after removal is :0

  1. C++での並べ替え

    このセクションでは、C++で並べ替えアルゴリズムを実行する方法を説明します。並べ替えられた配列は、各要素が数値、アルファベット順などの順序で並べ替えられた配列です。バブルソート、挿入ソート、選択ソート、マージソート、クイックソート、ヒープソートなど、数値配列をソートするための多くのアルゴリズムがあります。選択ソートを使用した配列のソートの詳細については、以下を参照してください。 選択ソートは、ソートされた配列を生成するソート方法です。これは、配列内の最小の要素を繰り返し見つけて、ソートされていない部分の先頭にある要素と交換することによって行われます。 選択ソートを使用してソートされた配列を

  2. 配列を使用してキューを実装するC++プログラム

    キューは、要素のコレクションを含む抽象的なデータ構造です。キューはFIFOメカニズムを実装します。つまり、最初に挿入された要素も最初に削除されます。つまり、最近追加された要素がキューの最初に削除されます。 配列を使用してキューを実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; int queue[100], n = 100, front = - 1, rear = - 1; void Insert() {    int val;    if (rear == n -