#include<vector>
#include<iostream>



main() {
int i;
std::vector<int>::iterator it;
std::vector<int> v(1);
std::vector<int> buff(100);/* staramy siÄ? zajÄ?Ä? pamiÄ?Ä? za v*/

v[0]=0;
it=v.begin();
i=(*it); /* OK, przypisuje i=0*/
for(int i=0;i<2;++i)
  v.push_back(i);   
    /*\parbox{12cm}{ poniewaÅ¼ przekraczamy koniec wektora, kontener zaalokuje\ 
       \ dodatkowÄ? pamiÄ?c. MoÅ¼e siÄ? to wiÄ?zaÄ? z koniecznoÅ?Ä?iÄ?, przeniesienia\ 
       zawartoÅ?ci wektora v w inne miejsce pamiÄ?ci. \ 
       To spowoduje Å¼e wskaÅºnik it przestanie pokazywaÄ? na poczÄ?tek wektora v}
    */

 std::cerr<<(*it)<<std::endl ;                  /* niezdefiniowane*/

 std::cerr<<"iterator nieprawidÅ?owy"<<std::endl; 
for(;it != v.end(); ++it)  /* potencjalnie nieskoÅ?czona pÄ?tla */  
  std::cerr<<*it<<std::endl;
;  

 std::cerr<<"iterator prawidÅ?owy"<<std::endl; 
for(it=v.begin();it != v.end(); ++it)  
  std::cerr<<*it<<std::endl;
;  

}
