C++、Java、JavaScript、Python 配列の比較

C++、Java、JavaScript、Python 配列の比較

C++、Java、JavaScript、Python にはすべて配列の概念がありますが、プログラミング言語が異なると、配列の実装方法や使用方法が異なる場合があります。

1. C++: C++ を使用する場合、組み込み配列を使用して、同じデータ型を持つ要素のセットを格納できます。配列は宣言時にサイズを指定する必要があり、実行時にサイズを変更することはできません。たとえば、 intnumbers[5]; は 5 つの整数の配列を宣言します。C++ は、動的サイズの配列をより柔軟に操作するための標準ライブラリ コンテナー (ベクトルなど) も提供します。

2. Java: Java では、配列も同じデータ型を持つ要素のセットです。C++ と同様に、Java の配列も宣言時にサイズを指定する必要があり、サイズは不変です。たとえば、 int[]numbers = new int[5]; は 5 つの整数の配列を宣言します。Java は、動的サイズの配列操作をサポートする ArrayList などのクラスも提供します。

3. JavaScript: JavaScript の配列は、任意の型の要素のセットを格納するために使用できる特別なオブジェクトです。C++ や Java とは異なり、JavaScript の配列サイズは動的であり、要素はいつでも追加または削除できます。たとえば、 letnumbers = [1, 2, 3, 4, 5]; は 5 つの整数の配列を定義します。

4. Python: 配列に対する組み込みのサポートはありません。リスト (List) を配列として使用でき、リストには任意の型の要素を格納できます。JavaScript と同様に、Python のリスト サイズも動的であり、必要に応じて調整できます。たとえば、numbers = [1, 2, 3, 4, 5] は 5 つの整数のリストを定義します。詳しい紹介はhttps://blog.csdn.net/cnds123/article/details/126322014でご覧いただけます。

C++、Java、JavaScript 配列、および Python リストの要素は、末尾の添え字の増加順に配置されます。この要素の配置順序により、多次元配列またはリストの要素を直感的に理解して操作できるようになります。[Python リストは、リストをネストすることで多次元配列の動作をシミュレートできます。

理解を助けるために、以下に例を示します。

C++ 3 次元配列 a[2][3][4] のサンプル プログラム:

#include <iostream>
using namespace std;

int main() {
    // 定义一个3维数组
    int a[2][3][4] = {
   
   {
   
   {1, 2, 3, 4}, 
                   {5, 6, 7, 8}, 
                   {9, 10, 11, 12}}, 
                  {
   
   {13, 14, 15, 16}, 
                   {17, 18, 19, 20}, 
                   {21, 22, 23, 24}}};


    // 输出数组
    for(int i=0; i<2; i++){
        for(int j=0; j<3; j++){
            for(int k=0; k<4; k++){
                cout << "a[" << i << "][" << j << "][" << k << "] = " << a[i][j][k] << "  ";
            }
            cout << endl;
        }
        cout << endl;
    }

    return 0;
}

この例では、a[2][3][4]の 3D 配列を定義し、その配列に値を割り当てます。ネストされたループを使用して配列を反復処理し、各要素の値を出力します。

このプログラムの出力は次のようになります。

a[0][0][0] = 1 a[0][0][1] = 2 a[0][0][2] = 3 a[0][0][3] = 4 a
[ 0][1][0] = 5 a[0][1][1] = 6 a[0][1][2] = 7 a[0][1][3] = 8 a[0
] [2][0] = 9 a[0][2][1] = 10 a[0][2][2] = 11 a[0][2][3] = 12

a[1][0][0] = 13 a[1][0][1] = 14 a[1][0][2] = 15 a[1][0][3] = 16 a
[ 1][1][0] = 17 a[1][1][1] = 18 a[1][1][2] = 19 a[1][1][3] = 20 a[1
] [2][0] = 21 a[1][2][1] = 22 a[1][2][2] = 23 a[1][2][3] = 24

以下は、Python リストを使用して C++ 3 次元配列 a[2][3][4] の走査をシミュレートするサンプル プログラムです。

a = [[[1, 2, 3, 4], 
      [5, 6, 7, 8], 
      [9, 10, 11, 12]], 
     [[13, 14, 15, 16], 
      [17, 18, 19, 20], 
      [21, 22, 23, 24]]]

for i in range(2):
    for j in range(3):
        for k in range(4):
            print("a[", i, "][", j, "][", k, "] = ", a[i][j][k], end="  ")
        print() # 换行   
    print() # 换行 


このプログラムの出力は上記の例と同じです。

実際、JavaScript の配列と Python のリストには、さまざまなタイプの要素を含めることができ、サイズ (長さ) を動的に変えることができます (つまり、要素はいつでも追加または削除できます)。これらの違いは、プログラミング言語の設計概念と適用分野の違いによって引き起こされます。これは、JavaScript と Python はどちらも動的型付け言語であり、変数の型と長さは実行時に決定され、宣言時に変数の型と長さを決定する必要がないためです。したがって、それらの配列またはリストは、実行時にいつでも長さを増減でき、さまざまな種類のデータを保持できます。

C++ と Java は静的に型付けされた言語であり、配列の長さは宣言時に決定され、配列には同じ型の要素のみを含めることができます。これは、C++ と Java ではコンパイル時に変数の型と長さを決定する必要があるため、配列を宣言するときに変数の型と長さを指定する必要があるためです。実行時に配列の長さを動的に決定する必要がある場合は、C++ の std::vector や Java の ArrayList などのコンテナー クラスを使用して実現できます。これらのコンテナ クラスの長さは実行時に動的に変更でき、さまざまなタイプの要素を含めることができます。

おすすめ

転載: blog.csdn.net/cnds123/article/details/132096454