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
-
STL vector
-
-
#include<iostream>
-
-
#include<vector>
-
-
using namespace std;
-
-
main(){
-
-
vector <int> V;
-
-
string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
-
-
//umieszczenie danych w wektorze
-
-
for(int i=0 ; i<N.length() ; i++)
-
-
V.push_back(N[i]);
-
-
//wypisanie danych z wektora
-
-
for(int i=0 ; i<V.size() ; i++)
-
-
cout<<char(V[i]);
-
-
cout<<"\n";
-
-
//sortowanie wektora
-
-
sort(V.begin(),V.end());
-
-
//wypisanie danych z wektora po sortowaniu
-
-
for(int i=0 ; i<V.size() ; i++)
-
-
cout<<char(V[i]);
-
-
cout<<"\n";
-
-
system("pause");
-
-
}
STL QUEUE
-
#include<iostream>
-
-
#include<queue>
-
-
using namespace std;
-
-
main(){
-
-
queue <int> Q;
-
-
string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
-
-
//umieszczenie danych w kolejce
-
-
for(int i=0 ; i<N.length() ; i++)
-
-
Q.push(N[i]);
-
-
//wypisanie danych z kolejki
-
-
while(Q.size()!=0)
-
-
{
-
-
cout<<char(Q.front());
-
-
Q.pop();
-
-
}
-
-
cout<<"\n";
-
-
system("pause");
-
-
}
STL priority_queue – sortuje elementy
-
#include<iostream>
-
-
#include<queue>
-
-
using namespace std;
-
-
main(){
-
-
priority_queue<int> PQ;
-
-
string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
-
-
//umieszczenie danych w kolejce
-
-
for(int i=0 ; i<N.length() ; i++)
-
-
PQ.push(N[i]);
-
-
//wypisanie danych z kolejki
-
-
while(PQ.size()!=0)
-
-
{
-
-
cout<<char(PQ.top());
-
-
PQ.pop();
-
-
}
-
-
cout<<"\n";
-
-
system("pause");
-
-
}
STL set - sortuje elementy, eliminuje duplikaty
-
#include<iostream>
-
#include<set>
-
-
using namespace std;
-
-
main()
-
{
-
set <int> S;
-
set <int>::iterator p;
-
string N="QWERABCABCABCDAABBCCDDEEFFGHOABCD";
-
-
//umieszczanie elementów
-
for(int i=0 ; i<N.length() ; i++)
-
S.insert(N[i]);
-
-
//wypisanie elementów
-
-
for(p=S.begin() ; p!=S.end() ; p++)
-
{
-
cout<<char(*p);
-
}
-
-
//poszukiwanie elementu o wartosci 'Q'
-
bool is_in = S.find('Q') != S.end();
-
if (is_in)
-
cout<<"\nZnaleziono element \'Q\'";
-
else
-
cout<<"\nNie znaleziono elementu \'Q\'";
-
-
cout<<"\nIlosc elementow w SET: "<<S.size();
-
}
STACK
-
//sortowanie tekstu z wykorzystaniem stosu
-
//sortujemy tekst zlozony z 4 znakow (tekst o dowolnej dlugosci - dozwolone znaki: tylka 'a', 'b', 'c', 'd')
-
#include<iostream>
-
#include<stack>
-
using namespace std;
-
-
main()
-
{
-
stack < char > Sb;
-
stack < char > Sc;
-
stack < char > Sd;
-
string napis="ababcdabcdabcdddccbbaa";
-
int i,n;
-
n=napis.length();
-
-
for ( i=0 ; i<n ; i++ )
-
if (napis[i]=='a') cout<<napis[i];
-
else
-
if (napis[i]=='b') Sb.push(napis[i]);
-
else
-
if (napis[i]=='c') Sc.push(napis[i]);
-
else Sd.push(napis[i]);
-
-
while( !Sb.empty() ) //dopóki stos nie jest pusty wykonuj{
-
{
-
cout << Sb.top(); //odczyt ze stosu
-
Sb.pop(); //usuniecie ze stosu
-
}
-
-
while( !Sc.empty() ) //dopóki stos nie jest pusty wykonuj
-
{
-
cout << Sc.top(); //odczyt ze stosu
-
Sc.pop(); //usuniecie ze stosu
-
}
-
-
while( !Sd.empty() ) //dopóki stos nie jest pusty wykonuj
-
{
-
cout << Sd.top(); //odczyt ze stosu
-
Sd.pop(); //usuniecie ze stosu
-
}
-
}
Zobacz działanie powyższego kodu w kompilatorze online >>>.