Narzędzia użytkownika

Narzędzia witryny


timer

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
timer [2009/04/18 20:40]
lucas
timer [2009/04/26 22:43] (aktualna)
lucas
Linia 2: Linia 2:
  
 **Łukasz Dobrodziej T-TIZ** **Łukasz Dobrodziej T-TIZ**
- 
- 
 ===== Wstęp ===== ===== Wstęp =====
  
-Biblioteka Timer zapewnia trzy klasy, które umożliwiają kontrolę czasu - klasę ''​timer''​ do mierzenia czasu, który upłynął od danej chwili, klasę ''​progress_timer'' ​ do raportowania czasu oraz klasę ''​progress_display'' ​ do wyświetlania wskaźnika postępu. Klasy są wyposażone w obsługę wyjątków np. konstruktory mogą rzucić std::​bad_alloc. W praktyce rzucanie wyjątków przez obiekty tych klas jest mało prawdopodobne.  ​+Biblioteka Timer zapewnia trzy klasy, które umożliwiają kontrolę czasu - klasę ''​timer''​ do mierzenia czasu, który upłynął od danej chwili, klasę ''​progress_timer'' ​ do raportowania czasu oraz klasę ''​progress_display'' ​ do wyświetlania wskaźnika postępu. Klasy są wyposażone w obsługę wyjątków np. konstruktory mogą rzucić ​''​std::​bad_alloc''​. W praktyce rzucanie wyjątków przez obiekty tych klas jest mało prawdopodobne.  ​
  
 ===== Klasa timer ===== ===== Klasa timer =====
Linia 22: Linia 20:
 boost::​timer t; // uruchomienie zegara (rozpoczecie odmierzania czasu) ​ boost::​timer t; // uruchomienie zegara (rozpoczecie odmierzania czasu) ​
   for (int i=0; i<​10000000;​ ++i) std::​rand();​   for (int i=0; i<​10000000;​ ++i) std::​rand();​
-  std::cout << t.elapsed() << std::endl; //​wyswietlenie aktualnej wartosci ​timeru+  std::cout << t.elapsed() << std::endl; //​wyswietlenie aktualnej wartosci ​zegara
  
 </​code>​ </​code>​
Linia 39: Linia 37:
  
 </​code>​ </​code>​
- 
 ===== Klasa progress_display ===== ===== Klasa progress_display =====
  
Linia 46: Linia 43:
   * **''​count()''​** zwraca wartość wewnętrznego licznika.   * **''​count()''​** zwraca wartość wewnętrznego licznika.
   * **''​expected_count()''​** zwraca wartość docelową, podaną podczas kontrukcji obiektu.   * **''​expected_count()''​** zwraca wartość docelową, podaną podczas kontrukcji obiektu.
-  * **''​restart(unsigned long expected_count)''​** ustawia nową wartość docelową, ​zerując ​licznik. +  * **''​restart(unsigned long expected_count)''​** ustawia nową wartość docelową, ​zeruje ​licznik. 
-Klasa ma przeładowane operatory ''​++''​ i ''​+='',​ które służą do zwiększania licznika (i jeżeli to konieczne dorysowania odpowiedniego znaku postępu). Dodatkowo przy pomocy konstruktora możemy zmienić miejsce wyświetlania paska postępu operacji oraz jego formęKonstruktor ​ma następującą postać:+Klasa ma przeładowane operatory ''​++''​ i ''​+='',​ które służą do zwiększania licznika (i jeżeli to konieczne dorysowania odpowiedniego znaku postępu). Dodatkowo przy pomocy konstruktora możemy zmienić miejsce wyświetlania paska postępu operacji oraz możemy dodać tytuł dla każdego wierszaDeklaracja konstruktora ​ma następującą postać:
 <code cpp> <code cpp>
 progress_display( unsigned long expected_count,​ progress_display( unsigned long expected_count,​
-                     ​std::​ostream&​ os,  // os jest podpowiedziąmoże być zignorowany+                     ​std::​ostream&​ os,  // os jest sugestiamoze byc zignorowany
                      const std::string & s1 = "​\n", ​                      const std::string & s1 = "​\n", ​
                      const std::string & s2 = "",​                      const std::string & s2 = "",​
Linia 58: Linia 55:
 Przykład użycia: Przykład użycia:
 <code cpp> <code cpp>
-progress_display show_progress( big_map.size() ); //​inicjalizacja obiektu, zdefiniowanie ​wartości ​docelowej+progress_display show_progress( big_map.size() ); //​inicjalizacja obiektu, zdefiniowanie ​wartosci ​docelowej
   for ( big_map_t::​iterator itr = big_map:​begin();​   for ( big_map_t::​iterator itr = big_map:​begin();​
         itr != big_map.end();​ ++itr )         itr != big_map.end();​ ++itr )
   {   {
-     // wykonywanie jakichs obliczen +      ​// wykonywanie jakichs obliczen
-     ...+
      ​++show_progress;​ //​wyswietlanie postepu na standardowym wyjsciu      ​++show_progress;​ //​wyswietlanie postepu na standardowym wyjsciu
   }   }
Linia 74: Linia 70:
 ************************************ ************************************
 </​code> ​ </​code> ​
 +===== Kod z przykładowym wykorzystaniem =====
 +Do analizowania przykładowego kodu należy przejść po zapoznaniu się z wyżej wymienionymi informacjami o bibliotece boost::​timer.
 +{{timer_test.cpp}}
   ​   ​
- 
- 
timer.1240080031.txt.gz · ostatnio zmienione: 2009/04/18 20:40 przez lucas