为什么这个程序编译 通不过 哪儿错了?
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct Stat{
Stat():sum(0.0),count(0){}
double sum;
int count;
};
//using std::string;
typedef std::map <string,Stat> Data;
void collect_data(Data &stats)
{
string name;
while(cin> > name)
{
double datum;
std::cin> > datum;
stats[name].sum += datum;
++stats[name].count;
}
}
void print_stats(Data const &stats)
{
double global_sum = 0.0;
int global_count = 0;
for(Data::iterator p = stats.begin(); p != stats.end(); ++p)
{
std::cout < <(*p).first
< < "sum= " < <(*p).second.sum
< < "mean= " < <(*p).second.sum/(*p).second.count < < '\n ';
global_sum += (*p).second.sum;
global_count += (*p).second.count;
}
std::cout < < "all: " < <global_sum
< < "all_mean: " < <global_sum/global_count < <std::endl;
}
void main()
{
Data stats;
collect_data(stats);
print_stats(stats);
}
[解决办法]
编译器给出出错提示了。
[解决办法]
一个错
Data::cosnt_iterator p = stats.begin();
=======================================
Data::iterator p = stats.begin();