Форум программистов, компьютерный форум 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 для С. Можете скомпилировать данный код и сказать работает он вообще или нет? Если нет то какие сообщения выдает. #include <iostream.h> #include <string.h> #include <cstring.h> #include <conio.h> class OverflowException { public: OverflowException() {
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 n=2; //Кол-во строк const int m=7; //Кол-во столбцов
C++ Система передачи данных Система передачи данных обеспечивает передачу пакетов дан*ных из пункта А в пункт C через транзитный пункт В. В пункт А паке*ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c максимальной вместительностью 25 пакетов и c равной вероятно*стью передаются по одной из двух линий: AB1 – за 20 мс; AB2 – за 20 ± 5 мс. В пункте В пакеты снова буферизируются в накопителе c максимальной... подробнее

Показать сообщение отдельно
POWER-Morzh
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 9
16.03.2012, 20:55     Почему выдает ошибку в строке "for(Data::iterator p=stats.begin(); p!=stats.end(); ++p)"
"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

Буду очень благодарен за ваши ответы. Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru