0

この配列の各セルが 2 つの要素 (i,j) を格納できる 1D 配列を作成するにはどうすればよいですか? たとえば、array[0] は i、j の 2 つのセルを返し、array[1] は次の 2 つのセルと ... を返します。

4

3 に答える 3

5

ペアのベクトルを使用する必要があります。

std::vector<std::pair<TI, TJ>> v;

TIとはそれぞれTJ、最初と 2 番目のセル要素の型です。

次に、次のような要素を追加します。

v.push_back(std::make_pair(i, j));

そして、次の方法でアクセスします。

v[0].first // first cell
v[0].second // second cell
v[1].first // and so on
...
于 2013-05-09T09:58:45.040 に答える
5

必要なのは構造体です

struct mydata
{
    int i;
    int j;
};

その後、メインで次のことができます。

mydata x[5];

x[0].i = 1;
x[0].j = x[0].i++;

等々

于 2013-05-09T09:56:36.427 に答える
4

これは、さまざまな方法で実現できます。を使用std::vectorして配列を作成しstd::pair<T, U>、要素の型として使用できます。場所TUは、必要な型です。

std::vector<std::pair<T, U>> vec;

C++11 では、std::tuple(セルごとに 2 つ以上の要素が必要な場合) 同様に使用できます。

std::vector<std::tuple<T, U, Z>> vec;

または、「名前付き」要素が必要な場合は、カスタム構造体/クラスを使用できます。

struct Foo {
  T i;
  U j;
};

std::vector<Foo> vec;
于 2013-05-09T09:57:35.843 に答える