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:35]
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 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 is hint; implementation may ignore +                     ​std::​ostream&​ os,  // os jest sugestia, moze byc zignorowany 
-                     const std::string & s1 = "​\n", ​//leading strings+                     const std::string & s1 = "​\n", ​
                      const std::string & s2 = "",​                      const std::string & s2 = "",​
                      const std::string & s3 = ""​ )                      const std::string & s3 = ""​ )
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.1240079726.txt.gz · ostatnio zmienione: 2009/04/18 20:35 przez lucas