Я пытаюсь прочитать форматированные входные данные из стандартного ввода с помощью Scala:
Эквивалентный код C++ находится здесь:
int main() {
int t, n, m, p;
cin >> t;
for (int i = 0; i < t; ++i) {
cin >> n >> m >> p;
vector<Player> players;
for (int j = 0; j < n; ++j) {
Player player;
cin >> player.name >> player.pct >> player.height;
players.push_back(player);
}
vector<Player> ret = Solve(players, n, m, p);
cout << "Case #" << i + 1 << ": ";
for (auto &item : ret) cout << item.name << " ";
cout << endl;
}
return 0;
}
Где в коде Scala я хотел бы использовать
players: List[Player], n: Int, m: Int, p: Int
для хранения этих данных.
Может ли кто-нибудь предоставить пример кода?
Или просто дайте мне знать, как:
- как работает функция main() в scala
- читать форматированный текст со стандартного ввода
- эффективное построение списка из входных данных (поскольку список неизменяем, возможно, есть более эффективный способ его создания? вместо того, чтобы иметь новый список по мере поступления каждого элемента?)
- вывод форматированного текста в stdout
Спасибо!!!
java.util.Scanner
3. в общем,ListBuffer
, при условии, что вы используете императивный стиль, который, вероятно, лучше всего подходит для такого рода вещей. В противном случае (поскольку вы пометили это функциональное программирование), вы можете использовать складки или рекурсию. ОднакоVector
может быть более подходящим, чемList
, если вы добавляете. - person Luigi Plinge   schedule 26.11.2013