Необычная разница в скорости между Python и C ++

Я недавно написал короткий алгоритм для расчетасчастливые числа в питоне. Программа позволяет выбрать верхнюю границу и определит все счастливые числа под ней. Для сравнения скорости я решил сделать самый прямой из известных мне алгоритмов перевода с python на c ++.

Удивительно, но версия c ++ работает значительно медленнее, чем версия python. Точные тесты скорости между временами выполнения для обнаружения первых 10000 счастливых чисел показывают, что программа python работает в среднем за 0,59 секунды, а версия c ++ работает в среднем за 8,5 секунд.

Я бы объяснил эту разницу в скорости тем, что мне пришлось писать вспомогательные функции для частей вычислений (например, для определения, находится ли элемент в списке / массиве / векторе) в версии c ++, которая уже встроена в язык Python. ,

Во-первых, является ли это истинной причиной такой абсурдной разницы в скорости, и, во-вторых, как я могу изменить версию c ++ для более быстрого выполнения, чем версия python (так, как мне кажется).

Два куска кода с тестированием скорости здесь:Версия Python,Версия C ++, Спасибо за помощь.

#include 
#include 
#include 
#include 
#include 

using namespace std;

bool inVector(int inQuestion, vector known);
int sum(vector given);
int pow(int given, int power);
void calcMain(int upperBound);

int main()
{
    while(true)
    {
        int upperBound;
        cout < "Pick an upper bound: ";
        cin >> upperBound;
        long start, end;
        start = GetTickCount();
        calcMain(upperBound);
        end = GetTickCount();
        double seconds = (double)(end-start) / 1000.0;
        cout < seconds < " seconds." < endl < endl;
    }
    return 0;
}

void calcMain(int upperBound)
{
    vector

Ответы на вопрос(17)

Ваш ответ на вопрос