0

私はプロジェクトに取り組んでおり、int 配列に複数の int 値を入力できれば、はるかに簡単になります。

例えば:

int array[5];

array[0] == 10, 20, 30;
array[1] == 44, 55, 66;
...

説明するのはちょっと難しいですが、配列に複数の int 値を入力するにはどうすればよいでしょうか? 御時間ありがとうございます :)

4

4 に答える 4

2

多次元配列を宣言できます。

int array[5][3];
array[0][0] = 10; array[0][1] = 20; array[0][2] = 30;
array[1][0] = 44; array[1][1] = 55; array[2][2] = 66;
...

または、アドホック構造体の配列を作成します。

struct tuple_3int
{
    int x, y, z;
    tuple_3int() {} 
    tuple_3int(int X, int Y, int Z) : x(X), y(Y), z(Z) {}
};

tuple_3int array[5];
array[0] = tuple_3int(10, 20, 30);
array[1] = tuple_3int(44, 55, 66);

または、C++11 を使用している場合は、新しいタプルを使用して、3 つの int のタプルの配列を宣言できます。

#include <tuple>

std::tuple<int, int, int> array[5];
array[0]=std::make_tuple(10, 20, 30);
array[1]=std::make_tuple(44, 55, 66);
于 2013-07-13T02:10:08.840 に答える
1

さまざまな方法で目標を達成できます。

  1. int のトリプル クラスを作成し、このクラスの配列を作成します。

すなわち

class triple {
int x;
int y;
int z;
public:
triple (int _x, int _y, int _z) : x(_x), y(_y), z(_z) {}
};

トリプル配列[サイズ]; 配列[0] = トリプル (1,2,3);

  1. int normal の値を入力し、連続する 3 つのセルごとに 1 つのインデックスとして参照します。

すなわち

array[0] = 10;    
array[1] = 44;   
array[2] = 20;   
array[3] = 55;   
array[4] = 30;   
array[5] = 66;  

0 ~ 2 のインデックスが最初のセルになり、3 ~ 5 が 2 番目のセルになります。

  1. 2D 配列を作成します。

すなわち

int array [SIZE][3];
array [i][0] = 1;
array [i][1] = 2;
array [i][2] = 3;
于 2013-07-13T02:10:53.727 に答える
1

なぜ二次元配列を使わないのですか?! 保存する要素の数がすべてのセルで等しくない場合は、ベクトルの配列またはリストの配列を使用できます

例えば

vector<int> array[5];
于 2013-07-13T02:11:08.127 に答える
1

C++11 を使用できると仮定すると、 a std::vectorofstd::tupleは単純なアプローチのように見えます。単純な例を次に示します。

#include <iostream>
#include <vector>
#include <tuple>

int main()
{
    std::vector<std::tuple<int,int,int>> tupleVector ;

    tupleVector.push_back( std::make_tuple( 10, 20, 30 ) ) ;
    tupleVector.push_back( std::make_tuple( 44, 55, 66 ) ) ;

    std::cout << std::get<0>( tupleVector[0] ) << ":" << std::get<1>( tupleVector[0] )  << ":" << std::get<2>( tupleVector[0] )  << std::endl ;
    std::cout << std::get<0>( tupleVector[1] ) << ":" << std::get<1>( tupleVector[1] )  << ":" << std::get<2>( tupleVector[1] )  << std::endl ;
}

非 C++11 の例ではstruct、スロット データを保持するために a を使用できます。配列を使用することもできますが、std::vectorより単純であり、長期的には頭痛の種が少なくなります。

#include <iostream>
#include <vector>
#include <tuple>

struct slot
{
    int x1, x2, x3 ;

    slot() : x1(0), x2(0), x3() {}   // Note, need default ctor for array example
    slot( int p1, int p2, int p3 ) : x1(p1), x2(p2), x3(p3) {}  
} ;

int main()
{
    std::vector<slot> slotVector ;

    slotVector.push_back( slot( 10, 20, 30 ) ) ;
    slotVector.push_back( slot( 44, 55, 66 ) ) ;

    std::cout << slotVector[0].x1 << ":" << slotVector[0].x2 << ":" << slotVector[0].x3 << std::endl ;

    slot slotArray[5] ;

    slotArray[0] = slot( 10, 20, 30 ) ;
    slotArray[0] = slot( 44, 55, 66 ) ;

    std::cout << slotArray[0].x1 << ":" << slotArray[0].x2 << ":" << slotArray[0].x3 << std::endl ;
}
于 2013-07-13T02:16:52.957 に答える