Защо нормализацията бави? //task04.04-Resources, C++ Advanced
Здравейте,
Защо вариант 1/ с викане на нормализираща функция е много по - бавен, отколкото директно в кода на овърлоуднатия оператор да са if-else -овете ( а кода на нормализиращата функция е реализирана по същия начин с if-else -ове) ? Дава : Time used: 0.068 s , Memory used: 3.84 MB почти на всеки тест
нормализиращата функция работи с const реф.: static enum ResourceType& normalizeStringToEnum(const std::string& ts) {...)
вариант 1/ с нормализираща функция:
   void operator>>(std::istream& in, Resource& r) {           
        in >> r.id;
        std::string ts;
        in >> ts;
        r.typeE = Resource::normalizeStringToEnum(ts);  
        in >> r.link;            
    }
При вариант 2/ нормализиращата функция се вика само от инициализационния списък на конструктора, а в овърлоуднатия оператор >> логиката е с if-else -ове за енумерацията. Много бърз вариант и минава в Judge. Дава: Time used: 0.000 s, Memory used: 1.90 MB почти на всеки тест.
Защо?