3

野球選手 ID とその選手の打点 (打点数) の合計を格納するテキスト ファイルがあります。ID はすべて 4 桁で、rbis の範囲は 60 から 110 です。

5554 102 87 63 90 5553 66 68 90 102 など...

ID をセットに格納し、テキスト ファイルから 4 つの rbi の合計の平均を計算し、結果をコンソールに出力するコードをいくつか書きました。私の宿題では、プレイヤー ID と平均打点数をセットではなく、マップ ペアに保存する必要があると書かれています。マップされたペアの構文は

typedef pair<const Key, T> value_type;

しかし、マップされたペアでこのコードを書き直すのに問題があります。何かご意見は?

 #include <iostream>
 #include <fstream>
 #include <set>

 using namespace std;
 int main() 
 {
    ifstream input("filepath\\*.txt");
    multiset<int> values;

    // Read data from file 
    for(unsigned int j = 1; j <= 4; j++)
    {
    int player;
    (input >> player);

    int rbi;
    double total = 0.0;
    double average = 0.0;
        for(unsigned int i = 1; i <= 4; i++)
        {
        // Compute the average. 
        (input >> rbi);
        values.insert(rbi);
        total += rbi;
        average = total/4;
        }

    //Output totals to console
    cout << player;
    cout << " " << average << endl;
    }

 system("Pause");
 return 0;
 }
4

2 に答える 2

3

結果をstd::mapに保存してほしいと思っています。C++ のキーと値のペア (std::pair) のコンテナーです。次の構文を使用して、マップに値を挿入できます。map[key] = value;

例えば。

std::map<int, int> baseball_players;
for (...)
{
    // Calculate average
    baseball_players[player] = average;
}
于 2013-05-02T07:54:46.303 に答える