-1

大学のプロジェクトで初めて 2D 配列を使用します。

ユーザーが入力した値を配列の特定のスロットに配置する方法に苦労しています。

私が持っているのは。

cout << "Enter Number of Groups" << endl;
cin >> DefinedGroups;

int user_groups[definedgroups] [2]

while (havent worked out the condition yet)
{
cout << " Enter Lower Range " << endl;
cin >> Lrange;
cout << " Enter Higher Range " << endl;
cin >> Hrange;
}

Lrange と Hrange の値を 0,1 と 1,1 のように配列に入力し、定義されたグループを毎回 1 ずつインクリメントする方法を知っている人なら誰でも知っています。ありがとう

4

1 に答える 1

2

まず、コードはGCC拡張機能である可変長配列を使用します。これは、コードが移植できないことを意味します。

配列内の要素を読み取るには、次のようにします。

cout << " Enter Lower Range " << endl;
cin >> user_groups[i][0];
cout << " Enter Higher Range " << endl;
cin >> user_groups[i][1];

それがwhileループ条件を理解するときに取得する配列へのインデックスであると仮定しiます。

自分自身を啓蒙したい場合は、より慣用的な方法を使用できます。

int defined_groups;
std::cin >> defined_groups;
std::vector<std::pair<int, int>> user_groups;
for (int i = 0; i < defined_groups; i++) {
  int lower_range, upper_range;
  if (cout << "Enter Lower Range " << endl &&
      std::cin >> lower_range &&
      cout << " Enter Higher Range " << endl &&
      std::cin >> upper_range) {
    user_groups.push_back(std::make_pair(lower_range, upper_range));
  }
}
于 2012-12-02T15:09:51.467 に答える