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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
#1

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

16.11.2012, 01:32. Просмотров 262. Ответов 0
Метки нет (Все метки)

Доброй ночи, форум
Собственно, прошу анализа и совета...

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

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 увеличить некоторое поле объекта на N единиц? - C++
Доброго времени суток! 1)Есть вектор из указателей на объекты. Как с помощью for_each()увеличить некоторое поле объекта на N...

Работа со статическим полем класса - C++
Добрый вечер. Подскажите, как добавить в вектор какое-либо значение в этом случае? Ошибка 2001 вылазит, неразрешенный внешний символ... ...

For_each - C++
С помощью for_each, найти колличество иксов в массиве |{xi|xi&lt;3}| (Visual C++ 2005)

for_each и деструкторы - C++
#include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; class display { public: display() : i(0) { cout &lt;&lt; &quot;display...

Метод в for_each - C++
Привет всем. Есть класс и структурка: struct Foo { Foo(): name(&quot;nx&quot;), val(9) {} string name; int...

c++ for_each и вызов функции - C++
for(microbe &amp;i : microbes) { i.set_speed(diapozon_speed * rand() /RAND_MAX + min_speed ); // установка скорости ...

Опять непонятки с for_each - C++
Недавно создавал тему на проблему реализации for_each.Теперь для моей программы нужно добавить еще одну функцию:• Вывод на экран студентов,...

Заменить все for на for_each - C++
Добрый вечер! Столкнулся с такой проблеммой. Нужно заменить все циклы for на for_each для реализации данных алгоритмов: Перестановка...

Написание функции для for_each - C++
Хочу распечатать список list через свою функцию используя for_each, но я не могу понять как заставить эту for_each работать с моей...

STL библиотека. Ф-ция for_each - C++
При изучении STL, столкнулся со странным поведением ф-ции for_each библиотеки algorithm void Library::Func(int n) { cout &lt;&lt; &quot;n...

Как использовать инструкцию for_each ? - C++
Не могу понять как использовать std::for_each (например для вектора) std::vector&lt;int&gt; v; // создан вектор for (int i = 1; i&lt;10; i++) ...

Почему for_each() не выводит кирилицу - C++
Вот такой код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; void show(const std::string &amp; s); ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru