#include <iostream> #include <stdlib.h> int main() { system("date +%M.%S.%N"); return 0; }W boost znalazłem dwie, które nadawały by się do moich potrzeb. Niestety w żadną nie zagłębiałem się dokładnie. Pierwsza to Boost.Data_Time, druga to Boost.Chrono. Tutaj będzie tylko o pierwszej.
Biblioteka, pozwala na pobieranie czasu, obliczanie czasu trwania i przesunięć w czasie. Wszystko to dla różnych systemów kalendarzowych np. UTC, kalendarz gregoriański. Pozwala też zapisywać i odczytywać datę w różnych formatach - z tego co czytałem, bo nie miałem czasu testować.
W tym programie pobieram trzykrotnie lokalny czas (UTC) z dokładnością co do milisekund (linijki 14, 20 i 30). Następny krok to obliczenie czasu trwania (linijki 21 i 31) inicjalizowania listy, oraz jej przeszukiwania.
#include <list> #include <iostream> #include <boost/foreach.hpp> #include <boost/assign/list_of.hpp> #include <boost/date_time/posix_time/posix_time.hpp> using namespace std; using namespace boost::assign; int main() { using namespace boost::posix_time; ptime time1 = microsec_clock::local_time(); cout << "Start at: " << time1 << endl; const int size = 400500; list<int> l = list_of(1337).repeat(size, 1337); ptime time2 = microsec_clock::local_time(); time_duration td_init = time2 - time1; cout << "Memory Initialization: " << td_init << endl; int result = 0; BOOST_FOREACH(int value, l) { if (value > result) result = value; } ptime time3 = microsec_clock::local_time(); time_duration td_find = time3 - time2; cout << "Searching: " << td_find << endl; return result; }Wynik
Start at: 2012-Oct-14 17:13:36.716994 Memory Initialization: 00:00:00.125376 Searching: 00:00:00.021398
Brak komentarzy:
Prześlij komentarz