Materiały pomocniczne - wykorzystanie biblioteki STL

Poniżej prezentujemy przykłady wykorzystania biblioteki STL. Artykuł zawiera podstawowe polecenia oraz przykłady wykorzystania w zadaniach.

Przykładowe polecenia:

 

STACK

  • empty()
  • size()
  • top()
  • push ()
  • pop ()

QUEUE

  • empty()
  • size()
  • front()
  • push()
  • pop()

SET

  • insert()
  • size()
  • find()

PRIORITY QUEUE

  • empty()
  • size()
  • top()
  • push()
  • pop ()

VECTOR

  • begin()
  • end()
  • empty()
  • erase()
  • front()
  • insert()
  • pop_back()
  • push_back()
  • size()
  • sort()

 

 

 

Przykłady wykorzystania:

 

STL vector

  1. STL vector
  2.  
  3. #include<iostream>
  4.  
  5. #include<vector>
  6.  
  7. using namespace std;
  8.  
  9. main(){              
  10.  
  11.                 vector <int> V;
  12.  
  13.                 string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
  14.  
  15.                 //umieszczenie danych w wektorze    
  16.  
  17.                 for(int i=0 ; i<N.length() ; i++)
  18.  
  19.                                V.push_back(N[i]);
  20.  
  21.                 //wypisanie danych z wektora
  22.  
  23.                 for(int i=0 ; i<V.size() ; i++)        
  24.  
  25.                                cout<<char(V[i]);
  26.  
  27.                 cout<<"\n";                              
  28.  
  29.                 //sortowanie wektora                
  30.  
  31.                 sort(V.begin(),V.end());
  32.  
  33.                 //wypisanie danych z wektora po sortowaniu  
  34.  
  35.                 for(int i=0 ; i<V.size() ; i++)        
  36.  
  37.                                cout<<char(V[i]);              
  38.  
  39.                 cout<<"\n";              
  40.  
  41.                 system("pause");                          
  42.  
  43.                 }

 

 

 

STL QUEUE

  1. #include<iostream>
  2.  
  3. #include<queue>
  4.  
  5. using namespace std;
  6.  
  7. main(){              
  8.  
  9.                 queue <int> Q;
  10.  
  11.                 string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
  12.  
  13.                 //umieszczenie danych w kolejce          
  14.  
  15.                 for(int i=0 ; i<N.length() ; i++)
  16.  
  17.                                Q.push(N[i]);
  18.  
  19.                 //wypisanie danych z kolejki    
  20.  
  21.                 while(Q.size()!=0)        
  22.  
  23.                                {
  24.  
  25.                                                cout<<char(Q.front());
  26.  
  27.                                                Q.pop();
  28.  
  29.                                }      
  30.  
  31.                 cout<<"\n";              
  32.  
  33.                 system("pause");                          
  34.  
  35.                 }

 

 

 

 

STL priority_queue – sortuje elementy

  1. #include<iostream>
  2.  
  3. #include<queue>
  4.  
  5. using namespace std;
  6.  
  7. main(){              
  8.  
  9.                 priority_queue<int> PQ;
  10.  
  11.                 string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
  12.  
  13.                 //umieszczenie danych w kolejce          
  14.  
  15.                 for(int i=0 ; i<N.length() ; i++)
  16.  
  17.                                PQ.push(N[i]);
  18.  
  19.                 //wypisanie danych z kolejki    
  20.  
  21.                 while(PQ.size()!=0)      
  22.  
  23.                                {
  24.  
  25.                                                cout<<char(PQ.top());
  26.  
  27.                                                PQ.pop();
  28.  
  29.                                 }            
  30.  
  31.               cout<<"\n";              
  32.  
  33.               system("pause");                          
  34.  
  35.                 }

 

 

 

STL set - sortuje elementy, eliminuje duplikaty

  1. #include<iostream>
  2. #include<set>
  3.  
  4. using namespace std;
  5.  
  6. main()
  7. {              
  8.     set <int> S;
  9.     set <int>::iterator p;
  10.     string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";              
  11.  
  12.     //umieszczanie elementów
  13.     for(int i=0 ; i<N.length() ; i++)
  14.        S.insert(N[i]);                              
  15.  
  16.     //wypisanie elementów            
  17.  
  18.     for(p=S.begin() ; p!=S.end() ; p++)
  19.    {            
  20.        cout<<char(*p);
  21.    }            
  22.  
  23.     //poszukiwanie elementu o wartosci 'Q'
  24.     bool is_in = S.find('Q') != S.end();          
  25.     if (is_in)
  26.         cout<<"\nZnaleziono element \'Q\'";
  27.     else
  28.         cout<<"\nNie znaleziono elementu \'Q\'";
  29.  
  30.     cout<<"\nIlosc elementow w SET: "<<S.size();              
  31. }
Zobacz działanie powyższego kodu w kompilatorze online >>>.

 

STACK

  1. //sortowanie tekstu z wykorzystaniem stosu
  2. //sortujemy tekst zlozony z 4 znakow (tekst o dowolnej dlugosci - dozwolone znaki: tylka 'a', 'b', 'c', 'd')
  3. #include<iostream>
  4. #include<stack>
  5. using namespace std;
  6.  
  7. main()
  8. {
  9.     stack < char > Sb;
  10.     stack < char > Sc;
  11.     stack < char > Sd;
  12.     string napis="ababcdabcdabcdddccbbaa";
  13.     int i,n;
  14.     n=napis.length();
  15.    
  16.     for ( i=0 ; i<n ; i++ )
  17.         if (napis[i]=='a') cout<<napis[i];
  18.         else
  19.             if (napis[i]=='b') Sb.push(napis[i]);
  20.             else
  21.                 if (napis[i]=='c') Sc.push(napis[i]);
  22.                 else Sd.push(napis[i]);
  23.    
  24.     while( !Sb.empty() )         //dopóki stos nie jest pusty wykonuj{
  25.     {
  26.         cout << Sb.top();   //odczyt ze stosu
  27.         Sb.pop(); //usuniecie ze stosu
  28.     }
  29.    
  30.     while( !Sc.empty() )         //dopóki stos nie jest pusty wykonuj
  31.     {
  32.         cout << Sc.top();   //odczyt ze stosu
  33.         Sc.pop(); //usuniecie ze stosu
  34.     }
  35.    
  36.     while( !Sd.empty() )       //dopóki stos nie jest pusty wykonuj
  37.     {
  38.         cout << Sd.top();   //odczyt ze stosu
  39.         Sd.pop(); //usuniecie ze stosu
  40.     }
  41. }

Zobacz działanie powyższego kodu w kompilatorze online >>>.