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

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

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

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

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

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

Работа с памятью: можно ли в массив объектов с полем типа "Родитель", вписать объекты с полем типа "Потомок" - C++
Здравствуйте. Предположим, что у нас есть массив из структур в которых находиться класс Item и число Count. Можно ли на место Item записать...

Создание объекта класса с полем являющимся объектом другого класса - C++
Bill a; cin&gt;&gt;a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 01:32
Привет! Вот еще темы с ответами:

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

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

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


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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