Professional Documents
Culture Documents
C++ STL
C++ STL
STL-,
#include <stack>
.
,
stack<string> s;
string- ,
-
#include <string>
stack<int> s;
( , ) T
stack<T> s;
, empty, ..
s.empty() //
bool
true false
.
-
size
s.size() //
int
t T push,
s.push(t) //
void
pop,
s.pop() //
T
,
top
s.top() //
T
queue STL-
:
#include <queue>
T :
queue<T> q;
, empty
q.empty() //
bool
size
q.size() //
int
t T q,
q.push(t) //
void
q
pop,
q.pop() //
T
,
back, ..
q.back() //
T
, ( )
front,
q.front() //
T
:
//direktivi za vklucuvanje na potrebnite klasi
#include <iostream>
#include <queue>
#include <string>
using namespace std;
int main() {
//deklarirame stek struktura so elementi od tip string
queue<string> q;
//Vnesuvame tri string-a po red
q.push("PROBA 1");
q.push("PROBA 2");
q.push("PROBA 3");
string w;
cin>>w;
q.push(w);
//Pecatime broj na zborovi koisto sme gi vnesle
cout << "Broj na zborovi = " << q.size() << endl;
//Se dodeka stekot ne e prazen
while (!q.empty()) {
//Go citame zborot od vrvot na stekot i go pecatime
cout << q.front() << endl;
//Go citame i odstranuvame stringot od vrvot na stekot
q.pop();
}
return 0;
}
STL- ,
,
#include <list>
T :
list<T> q;
empty,
ls.empty() //
bool
size
ls.size() //
int
t T ls
ls.push_back(t) //
void
ls,
pop_back
ls.pop_back() //
T
, ls.
ls.push_front(t) //
void
ls.pop_front() //
T
sort, :
ls.sort() //
void
clear
ls.clear() //
void
reverse
ls.reverse() //
void
ls1 ls2,
ls2=ls1;
( - )
, .. [].
:
#include <vector>
T :
vector<T> v;
empty
v.empty() //
bool
v
size
v.size() //
int
t v
push_back,
v.push_back(t) //
void
v
pop_back
v.pop_back() //
T
( ) v
front
v.front() //
T
( ) v
back
v.back() //
T
i- v ( 0<= i<v.size() )
,
:
v[i]
i- at,
v.at(i)//
void
v1 v2
v2=v1;
:
#include <iostream>
#include <vector>
using namespace std;
int main(){
//Inicijalizirame vektor so 4-ri celobrojni vrednosti
vector<int> v(4);
//Gi inicijalizirame vrednostite
v[0]=100;
v[1]=200;
v[2]=300;
v[3]=400;
//metodata push_back pravi prosiruvanje(dupliranje na prostorot) na vektorot
dokolku ima potreba za toa
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
for(int i=0;i<v.size();i++)
cout<<i<<" - ti element: "<<v[i]<<endl;
return 0;
}
. , , .
.
vecor<int>::iterator
.
.
, ls int.
list<int> ls;
,
, .
list<int>::iterator p;
for(p=ls.begin();p!=ls.end();p++)
cout<<*p<<endl;
C::iterator p
p++
p . p
*p
C
c.begin()
C
c.end()
,
.
x ls p insert:
ls.insert(p,x);
ls, p
erase:
ls.erase(p);
:
#include <iostream>
#include <list>
using namespace std;
void print(list<char> ls){
for(list<char>::iterator p=ls.begin();p!=ls.end();p++)
cout<<*p<<" ";
cout<<endl;
}
int main(){
list<char> ls;
list <char>::iterator p;
ls.push_back('o');
ls.push_back('a');
ls.push_back('t');
p=ls.begin();
// p pokazuva na 'o' vo ('o', 'a', 't')
cout <<" "<< *p<<endl;
print(ls);
ls.insert(p, 'c');
// ls sega izgleda ('c', 'o', 'a', 't') a p seuste pokazuva na 'o'
cout <<" "<< *p<<endl;
print(ls);
ls.erase(p);
#include<algorithm>
sort.
:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//Funkcija za pecatenje na elementite od vektorot a
void print( vector<int> a){
for(vector<int>::iterator ai=a.begin(); ai!=a.end(); ++ai)
cout << *ai << " ";
cout << endl;
cout << "----------------"<<endl;
}
int main()
{
//Deklarirame vektor a
vector<int> a;
// Gi vnesuvame broevite 9,8,7,6,5,4,3,2,1 redosledno vo vektorot
for(int i=0; i<9;++i)
a.push_back(9-i);
//Elementite od vektorot se podredeni po sledniov redosled 9,8,7,6,5,4,3,2,1
print(a);
Multimap
Multimap hash .
. : .
.
<. , string,
.
,
#include <map>
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
// Definirame multimap
multimap<string,int> mymm;
// Definirame iterator za vakov tip na multimap
multimap<string,int>::iterator it;
// Vnesuvame elementi vo multimap-ot
mymm.insert(pair<string,int>("niksa",10));
mymm.insert(pair<string,int>("bliksa",20));
mymm.insert(pair<string,int>("bliksa",30));
mymm.insert(pair<string,int>("aha",40));
mymm.insert(pair<string,int>("tdmm",50));
mymm.insert(pair<string,int>("nel",60));
mymm.insert(pair<string,int>("bliksa",60));
// Gi pecatime elementite od multimap-ot
for (it = mymm.begin();it != mymm.end();++it)
cout << " [" << (*it).first << ", " << (*it).second << "]" << endl;
// Za da gi ispecatime site vrednosti pri site pojavuvanja na klucot bliksa
pair<multimap<string,int>::iterator,multimap<string,int>::iterator> ret;
ret = mymm.equal_range("bliksa");
for (it=ret.first; it!=ret.second; ++it)
cout << " " << (*it).second;
cout << endl;
// Broj na elementi so kluc bliksa
cout<<endl<<"Broj na elementi so kluc 'bliksa' : "<<mymm.count("bliksa");
1. http://www.csci.csusb.edu/dick/samples/
2. http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.html
3. http://www.cplusplus.com/reference/stl/