Защо нормализацията бави? //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 почти на всеки тест.
Защо?