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

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

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

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

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 всё гуд с очередью, я когда пихаю, сразу доставать пробовал, но вот потом - не хочет. Мои догадки - может быть перегруженность () на это влияет? если да - подскажите , прав я или нет и в какую сторону копать, чтоб исправить!) Буду пре-благодарен!) Продуктивной ночи всем!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 01:32     Работа с полем объекта и for_each
Посмотрите здесь:

For_each C++
for_each и деструкторы C++
C++ метод в for_each
Почему for_each() не выводит кирилицу C++
Заменить все for на for_each C++
Как использовать инструкцию for_each ? C++
C++ c++ for_each и вызов функции
C++ Опять непонятки с for_each

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru