system_clock возвращает отрицательное время Переполнение стека

Я пишу код для времени цикла for, и я использовал код, данный мне моим профессором, и он использует system_clock.
Моя проблема в том, что на одном из моих циклов for, которые я синхронизирую, возвращается отрицательное время. Иногда это другое число, но всегда отрицательное.

Вот код:

std::chrono::time_point<std::chrono::system_clock> start2, end2;
int sum2 = 0;
std::cout << "Sum on reference ";
start2 = std::chrono::system_clock::now();
for(int i = 0; i < 10000; i++)
{
sum2 = secondSum(dr);
}
end2 - std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds2 = end2 - start2;
std::cout << "sum: " << sum2 << std::endl;
std::cout << "Elapsed time for data processing on reference: " << elapsed_seconds2.count() << "s\n";

Где dr — это ссылка на структуру с заполненным массивом внутри, а secondSum — это функция, которая суммирует различные значения внутри этого массива.

0

Решение

Вам нужно изменить строку end2 - std::chrono::system_clock::now(); в end2 = std::chrono::system_clock::now();, После этого ваш код должен работать именно так, как вы и предполагали.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]