Russian Qt Forum

Qt => Общие вопросы => Тема начата: Zusykss от Июль 26, 2018, 14:11



Название: QMapIterator <double, CoinValueNode> помогите разобраться где ошибка
Отправлено: Zusykss от Июль 26, 2018, 14:11
Добрый день использую итератор по мапу.
И бывает программа крашится если исходный QMap будет с 2 элементами, а когда с 3 то всегда работает без крашей, не могу понять из-за чего вот пример кода

Код:
 CoinValue coin_value;
    if(!m_value_list[pair].green.isEmpty() && m_value_list[pair].green.size() < 2)
    {
        QMapIterator <double, CoinValueNode> iterator(m_value_list[pair].green);
            iterator.toBack();
            while (iterator.hasPrevious()) {

                    iterator.previous();

                const auto current_value = iterator.value();

                if (current_value.third >= min_count) {
                    coin_value.green = current_value;
                    break;
                }
            }
    }
//    else if(m_value_list[pair].green.size() == 2)
//    {
//        for(auto iter = m_value_list[pair].green.cbegin(); iter != m_value_list[pair].green.cend(); ++iter)
//        {
//            if (iter->third >= min_count) {
//                coin_value.green = *iter;
//                break;
//            }
//        }
//    }

    if(!m_value_list[pair].red.isEmpty())
    {
        for (const auto & value : m_value_list[pair].red) {

            if (value.third >= min_count) {
                coin_value.red = value;
                break;
            }
        }
    }


    return coin_value;