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

Поле класса теряет информацию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как это сделать? http://www.cyberforum.ru/cpp-beginners/thread452715.html
Как написать прогу, которая бы указывала количество слов в предложении, вводимое пользователем?
C++ Преобразование переменных #include <iostream> #include <string> using namespace std; int main() { int j,i=5; string ss=5; char h="$"; http://www.cyberforum.ru/cpp-beginners/thread452705.html
помогите с написанием драйвера! С C++
всем привет! нужно написать драйвер для ОС Windows для работы в режиме ядра, который бы перехватывал функцию ZwTerminateProcess (проверял, мой ли процесс хотят убить и если да то возвращал...
C++ Как работает функция?
int chsim() { if (ef) return *usim=EOF; usim++; if(*usim!='*' && *(usim+1)!='') { com=0; com++; chsim();chsim(); while(com>0)
C++ Функции http://www.cyberforum.ru/cpp-beginners/thread452696.html
Разработать функцию f(x) которая возвращает младшую цифру натурального числа х. Вычислить с помощью нее значение выражения z=f(a)+f(b) народ хелп
C++ По заданному порядку следования вершин построить бинарное поисковое дерево как по заданному порядку следования вершин за линейное от количества вершин время построить в памяти компьютера бинарное поисковое дерево ? подробнее

Показать сообщение отдельно
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 272

Поле класса теряет информацию - C++

25.02.2012, 20:10. Просмотров 783. Ответов 14
Метки (Все метки)

Есть класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class anagramma{
    map<string, list<string> > data;
public:
    void operator ()(string d)
    {
        if(data.begin() == data.end())
            cout<<" ТВОЮ МАТЬ"; 
        string s = d;
        sort(s.begin(), s.end());
        data[s].push_back(d);
    }
 
public: void print()
    {
        if(data.begin() == data.end())
            cout<<" ТВОЮ МАТЬ";
    }
};
есть файл и, соответственно, поток. Сам мейн.
C++
1
2
3
4
5
6
7
8
9
10
11
12
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "Rus");
    ifstream FS;
    FS.open("05.txt");
    
    anagramma ana;
    for_each(istream_iterator<string>(FS), istream_iterator<string>(), ana);
    ana.print();
    FS.close();
    return 0;
}
фраза "ТВОЮ МАТЬ" выводится 2 раза: первый раз при первой иттерации лямбда-функции.
второй раз, когда я пытаюсь сделать "ana.print()". Почему после завершения работы лямбды-функции поле ana.data теряет информацию?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru