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

Работа с полем объекта и for_each - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Предупреждения Possible use of '...' before definition http://www.cyberforum.ru/cpp-beginners/thread699120.html
Написал программу: #include <iostream.h> #include <conio.h> #include <math.h> #define eps 0.0001 float element_n(int n) { cout<<"Input n: "; cin>>n;
C++ Критическая секция и внешний элемент #include<iostream> #include<windows.h> using namespace std; struct zayavka { int num1; int num2; int res; int oper;//1=сложение,2=вычитание,3=умножение,4=делениею http://www.cyberforum.ru/cpp-beginners/thread699115.html
C++ Произведение элементов массива
Подсчитать произведение 10 чисел. Почти все получается, что-то не так с произведением, выдаёт неправильное число, помогите пожалуйста! #include "stdafx.h" #include <stdio.h> #include <math.h> int main() {
C++ В последовательности получить сумму всех членов
Текст задачи: Даны натуральное число n, целые числа a, x_1, … , x_n. Если в последовательности x_1, … , x_n есть хотя бы один член, равный a, то получить сумму всех членов, следующих за первым таким членом; в противном случае ответом должно быть число -10. Требуется решить данную задачу используя все три оператора цикла (for, while, do-while), выполнив либо разные части алгоритма, либо одну и...
C++ Сортировка пузырьком http://www.cyberforum.ru/cpp-beginners/thread699091.html
#include <stdio.h> #include <iostream> #include <conio.h> #define M 10 void main() { int i,j,n,k; int m; setlocale(LC_ALL,"");
C++ Оператор вывода для иерархии Добрый вечер всем, Имеется класс Person, от него отнаследован класс Student. Есть 2 оператора чтения из потока std::istream& operator>> (std::istream&, Person&); std::istream& operator>> (std::istream&, Student&); Создается объект Student s; Неожиданным для меня оказалось, что следующий код: подробнее

Показать сообщение отдельно
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
16.11.2012, 01:32     Работа с полем объекта и for_each
Доброй ночи, форум
Собственно, прошу анализа и совета...

В мейне создается объект и используется как предикат или функтор, не уверен как правильно.

C
1
2
3
4
5
6
7
8
statistic SS(1);    
 
 
for_each(ii = wBox[j].begin(), ii = wBox[j].end(), SS);
 
//после идет 
 
SS.printFirtsN(5); //тут вылет
wBox - мультикарта, вот такая:

C
1
typedef map <string,int> my_map;
и Вот класс обьекта SS;

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
class statistic
{
        priority_queue <words> myqueue;
        string fName;
 
    public:
        statistic(int i)
        {
        };
 
        void setfName(string fN)
        {
            fName = fN;
        };
 
        statistic(string fn)
        {
        fName = fn;
        };
 
        void operator () (my_map::value_type it)
        {
            words buf;
            buf.wordSet(it.first,it.second,fName);
            cout<<"Buf: "<<buf.getword()<<" ";
            myqueue.push(buf);
 
        };
 
        void printFirtsN(int howMuch)
        {
            for(int i=0; i<howMuch; i++)
            {
                cout<<"Слово: "<<this->myqueue.top().getword()<<" Повторяется: "<<this->myqueue.top().gethow()<<" раз. В файле: "<<this->myqueue.top().filename()<<endl;
                this->myqueue.pop();    
            
            };
        
        };
 
};
Идея в чем, есть мультикарта, и фор-ич, проходится по ней и перегоняет всё в поле обьекта - SS, а точнее, в очередь с приоритетом. Вроде как обьекты "пихаются" в очередь, перегруженными (), но когда после пытаюсь из мейна вызвать SS.printFirstN(5); например, сразу ошибку выбивает. Вроде как ошибка обращения к памяти, что-то такое. Проверял, у обьекта SS всё гуд с очередью, я когда пихаю, сразу доставать пробовал, но вот потом - не хочет. Мои догадки - может быть перегруженность () на это влияет? если да - подскажите , прав я или нет и в какую сторону копать, чтоб исправить!) Буду пре-благодарен!) Продуктивной ночи всем!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru