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

Не реагирует на if - C++

Восстановить пароль Регистрация
 
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
02.12.2012, 17:06     Не реагирует на if #1
Всегда выполняет строку 12
C++ (Qt)
1
directions.push_back(std::make_pair(currentRow, Down));
независимо от if перед этой строкой
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void Widget::conversion()
{
    std::vector<std::pair<int, Direction> > directions; // rowNumber and direction
    sourcePointsType::iterator sourceRow = m_sourcePoints.begin();
    finalPointsType::iterator finalRow = m_finalPoints.begin();
    int currentRow = 0;
    for(;
        sourceRow != m_sourcePoints.end() && finalRow != m_finalPoints.end();
        ++sourceRow, ++finalRow, ++currentRow) {
        if(countPointsInRows(m_sourcePoints.begin(), sourceRow) ==
                countPointsInRows(m_finalPoints.begin(), finalRow)) {
            if(sourceRow->size() > finalRow->size()) {
                directions.push_back(std::make_pair(currentRow, Down));
            }
        }
        else if(countPointsInRows(m_sourcePoints.begin(), sourceRow) >
                countPointsInRows(m_finalPoints.begin(), finalRow)) {
            directions.push_back(std::make_pair(currentRow, Down));
        }
        else { // <
            directions.push_back(std::make_pair(currentRow, Up));
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 17:06     Не реагирует на if
Посмотрите здесь:

Программа неадекватно реагирует на функции работы с файлом.. C++
C++ На ESC не реагирует прога
C++ Не реагирует на флаг
C++ Почему-то не реагирует на конец строки '\0'
Компилятор не реагирует на изменение кода C++
Не реагирует на русский язык C++
C++ Программа, которая не реагирует на регистр букв C++
C++ Sscanf не реагирует на ввод

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
02.12.2012, 17:13     Не реагирует на if #2
У вас же directions.push_back(std::make_pair(currentRow, Down)); в двох условиях.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
02.12.2012, 20:43  [ТС]     Не реагирует на if #3
Цитата Сообщение от SeregaC++ Посмотреть сообщение
У вас же directions.push_back(std::make_pair(currentRow, Down)); в двох условиях.
Так надо.

Добавлено через 3 часа 26 минут
Похоже действительно проблема в том, что в двух условиях одно и тоже, но компилятор не правильно понял и подумал, что для
C++ (Qt)
1
directions.push_back(std::make_pair(currentRow, Down));
условия одинаковые.
Решил проблему объединением этих двух push_back'ов в один if.
Yandex
Объявления
02.12.2012, 20:43     Не реагирует на if
Ответ Создать тему
Опции темы

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