В моей калькуляционной программе пользователь выбирает, сколько и сколько нужно вычислить (например, сколько цифр pi, сколько простых чисел и т. Д.). Я использую time(0)
для проверки времени вычисления, прошедшего для того, чтобы вызвать условие таймаута. Если вычисление завершается без таймаута, я также распечатаю время вычисления, значение которого хранится в double
, тип возврата difftime()
.Как я могу измерить длительность второй секунды?
Я только что узнал, что рассчитанные значения времени указаны только в секундах. Я не хочу, чтобы пользовательский ввод результатов 100 и 10000 отображал как длительность вычислений 0e0
секунд. Я хочу, чтобы они печатали, например, длительности 1.23e-6
и 4.56e-3
секунд соответственно (с точностью, которую может измерить машина, - я более точно знаком с точностью, предоставляемой на Java, и точностью в научных измерениях, поэтому это личное предпочтение).
Я видел ответы на другие вопросы, но они не помогают, потому что 1) я не буду многопоточным (не рекомендуется в моей рабочей среде). 2) I не может использовать C++ 11 или новее.
Как я могу получить значения продолжительности времени более точными, чем секунды, в качестве интегральных значений, учитывая указанные ограничения?
Редактировать: Платформа & предпочтительных для машины решений, иначе Windows сделает, спасибо!
Редактировать 2: Мой ноутбук также не подключен к Интернету, поэтому загрузка внешних библиотек, таких как Boost (это то, что Boost?), Не загружается. Я должен сам что-то закодировать.
Вы можете быть шокированы, узнав, что есть более чем одна операционная система, которая используется на все компьютеры в мире, и что различные операционные системы предоставляют различные способы получения текущего времени, с различными уровнями точности. Если вы не укажете, какой O/S вы используете, авторизационный ответ не будет возможен для пре-C++ 11. –
@SamVarshavchik под редакцией. Извините, я привык работать на Java в школе почти исключительно, поэтому я склонен быть независимым от платформы при рефлексии. Все еще знакомится с C++ на работе. – thegreatjedi
Учитывая, что вы хотите независимое от платформы решение, есть ли причина, по которой вы избегаете C++ 11? – Jason