Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Почему выдает ошибку в строке "for(Data::iterator p=stats.begin(); p!=stats.end(); ++p)" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Можете скомпилировать и сказать работает ли? http://www.cyberforum.ru/cpp-beginners/thread520443.html
Не хочу качать компилятор для 4-5 заданий, точнее занимали бы они меньше места как, например, Dev-CPP для С. Можете скомпилировать данный код и сказать работает он вообще или нет? Если нет то какие...
C++ Написать программу удаления букв «б» из введенного слова Написать программу удаления букв «б» из введенного слова http://www.cyberforum.ru/cpp-beginners/thread520433.html
C++ Найти наибольшую клику в заданном орграфе, используя алгоритм нахождения независимых множеств
Клика – полный подграф неориентированного графа. Другими словами, клика графа есть подмножество его вершин, такое, что между каждой парой вершин этого подмножества существует ребро и, кроме того, это...
C++ не компилируется
Вот кусок кода class Game; class View { private: static int left;
C++ Компилятор выдает ошибку при объявлении массива. Не могу понять где соль http://www.cyberforum.ru/cpp-beginners/thread520390.html
Объясните пожалуйста в чем моя ошибка. Вот исходник #include <iostream> // cin, cout,endl #include <math.h> // Мат функции #include <iomanip> // формат вывода using namespace std; const int...
C++ Система передачи данных Система передачи данных обеспечивает передачу пакетов дан*ных из пункта А в пункт C через транзитный пункт В. В пункт А паке*ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c... подробнее

Показать сообщение отдельно
POWER-Morzh
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 9

Почему выдает ошибку в строке "for(Data::iterator p=stats.begin(); p!=stats.end(); ++p)" - C++

16.03.2012, 20:55. Просмотров 543. Ответов 5
Метки (Все метки)

"Read a sequence of possibly whitespaceseparated (name,value) pairs, where the name is a single whitespaceseparated word and the value is an integer or a floatingpoint value. Compute
and print the sum and mean for each name and the sum and mean for all names."

Нашел решебник, там решение)))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream> 
#include <map> 
#include <string> 
 
struct Stat { 
// Make sure the default constructor does the right thing 
// (used internally by the map data-structure) 
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(std::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 // the 'key' element 
<< ": sum = " << (*p).second.sum_ 
<< ", mean = " 
<< (*p).second.sum_/(*p).second.count_ 
<< '\n'; 
global_sum += (*p).second.sum_; 
global_count += (*p).second.count_; 
} 
std::cout << "Global sum: " << global_sum 
<< ", Global mean: " << global_sum/global_count 
<< std::endl; 
} 
int main() { 
Data stats; 
collect_data(stats); 
print_stats(stats); 
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Такие вопросы:
1)Где прочитать, что делает строка:Stat(): sum_(0.0), count_(0) {}
2)Почему выдает ошибку в строке "for(Data::iterator p=stats.begin(); p!=stats.end(); ++p) {".
Ошибка: 28 conversion from `std::_Rb_tree_const_iterator<std::pair<const std::string, Stat> >' to non-scalar type `std::_Rb_tree_iterator<std::pair<const std::string, Stat> >' requested

Буду очень благодарен за ваши ответы. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru