テキスト ファイルに 1000 個の統計データのセットがあるとします。その最初の列はインデックスの数を表し、2 番目の列はその値を表します。インデックスは繰り返すことができ、対応する値は異なる場合があります。インデックスの出現回数とそれぞれの値の合計をカウントしたいと思います。
インデックスの出現の結果を与えるコードを書きますが、対応する値の合計を与えることができません。
例
私のテキストファイルに次のようなデータセットがあるとします-
#index value
4 0.51
5 0.13
5 0.53
5 0.25
6 0.16
6 0.16
7 0.38
4 0.11
3 0.101
4 0.32
4 0.2 ... and more
したがって、この場合-
インデックス 4は 4 回発生し、対応する値の合計= (0.51+0.11+0.32+0.2) = 1.14
同様に
インデックス 5は2 回発生し、値の合計= (0.13+0.53)= 0.66 などです。
マイコード
これが私のコードです-
#include <iostream>
#include <map>
#include <fstream>
using namespace std;
int main()
{
map<double,double> index;
double number,value;
double total;
ifstream theFile ("a1.txt");
while(theFile >> number >> value)
{
++index[number];
total +=value;
}
cout<<"index\t occurs\t total"<<endl;
for(auto loop = index.begin(); loop != index.end();++loop)
{
cout << loop->first << "\t " << loop->second << "\t \t "<< total<<endl;
}
return 0;
}
このコードは結果を生成します-
index occurs total
3 1 2.851
4 4 2.851
5 3 2.851
6 2 2.851
7 1 2.851
発生数は正しいのですが、
合計 += 値;
探している出力が生成されません。各インデックスの合計を取得するにはどうすればよいですか?