[C++ Compilers] Code::Blocks VS Visual Studio 2015
Здравейте,
Кода тук представлява решение на тази задача -> https://projecteuler.net/problem=47
Ако се компилира в Code::Blocks, решението отнема 2,8 секунди. Ако се използва VS2015 - 2,8 минути! Знам, че има разлики в компилаторите, но предполагам че аз нещо бъркам - оптимизация или липса на такава...
Някой да има идея защо се получава така?
Поздрави,
Ники
Дефолтния.. мисля че е MinGW.
Добре, пуснах го на gcc/mingw в CLion и върви за 2 сек общо взето. Под VS наистина се бави. Това, което си мисля е, че идва от имплементацията на set. Виждам, че на двете по различен начин е имплементирано (въпреки, че и в двата случая явно е черно-червено дърво).
Този ред не е ли излишен иначе?
В крайна сметка това е set. Тази двойка няма да влезе втори път. Само бавиш програмата така да търси дали я няма.
Ами не.. метода пресмята броя на простите множители на дадено съставно число. То е същото и със следващия цикъл... а използвам точно set, за да няма повторения, защото ми трябва count-a на множителите. Пък и set::insert e с O(logn).. по време на insert-a, капацитета на сет-а не минава 8 - практически може да се каже O(1)... не мисля, че се бави от това.