この配列の各セルが 2 つの要素 (i,j) を格納できる 1D 配列を作成するにはどうすればよいですか? たとえば、array[0] は i、j の 2 つのセルを返し、array[1] は次の 2 つのセルと ... を返します。
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>
、要素の型として使用できます。場所T
とU
は、必要な型です。
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 に答える