map<double, double>
От: Аноним  
Дата: 02.01.03 15:51
Оценка:
Есть такой код:

#include <iostream>
#include <map>

const double value = 0.7;

int main() {
        
    typedef std::map<double, double> MR2; MR2 mr2;

    for (double d = 0; d < 100; d += 0.1) mr2.insert(std::make_pair(d, d * 10));

    std::pair<MR2::iterator, MR2::iterator> it2  = mr2.equal_range(value);

    std::cout << "lower: " << it2.first->first;
    std::cout << " upper: " << it2.second->first << std::endl;

    return 0;
}


На выходе: lower: 0.7 upper: 0.8 логично!

Для value = 0... 0.7 все работает правильно, но если value в проге сделать равным 0.8 или больше, получим (для 0.8)
lower: 0.9 upper: 0.9
(для 0.9)
lower: 1 upper: 1
...

Скажете, что у меня не галлюцинации!!!??? где вкралась ошибка? помогите!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.