STL Quick Reference 1.29.pdf

(241 KB) Pobierz
STLQuickReference–Version1.29 [A4] April20,2007
1
1Notations
•Thesymbol const for const .
•Thesymbol x forfunctionreturnedvalue.
•Templateclassparametersleadbyoutlined
character.Forexample: T , K ey, C ompare.
Interpretedin template definitioncontext.
•Sometimes class , typename dropped.
•Templateclassparametersdropped,
thusCsometimesusedinsteadofCh T i.
•“Seeexample”by + ,itsoutputby' à .
S:iteratorS:: erase (S::constiteratorfirst,
x posterased S::constiterator last);
voidS:: pushback ( const S::valuetype&x);
voidS:: popback ();
S::referenceS:: front ();
S::constreferenceS:: front () const ;
S::referenceS:: back ();
S::constreferenceS:: back () const ;
2.4Vector
#include<vector>
void//movex’s[xFirst,xLast)beforepos
list:: splice (iterator pos,
listh T i&x,
iterator xFirst,
iterator xLast); + 7.2
voidlist:: remove ( const T &value);
voidlist:: removeif ( P redicatepred);
//aftercall:8 this iteratorp,p6=(p+1)
voidlist:: unique (); //removerepeats
void//asbeforebut,¬binPred(p,(p+1))
list:: unique ( B inaryPredicatebinPred);
//Assumingboth this andxsorted
voidlist:: merge (listh T i&x);
//mergeandassumesortedbycmp
voidlist:: merge (listh T i&x, C omparecmp);
voidlist:: reverse ();
voidlist:: sort ();
voidlist:: sort ( C omparecmp);
2.7SortedAssociative
HereAanyof
{set,multiset,map,multimap}.
2.2.2Members&Operators
X::X();
X::X( const X&);
X:: ~ X();
X&X:: operator = ( const X&);
X::iterator X:: begin ();
X::constiterator X:: begin () const ;
X::iterator X:: end ();
X::constiterator X:: end () const ;
X::reverseiterator X:: rbegin ();
X::constreverseiteratorX:: rbegin () const ;
X::reverseiterator X:: rend ();
X::constreverseiteratorX:: rend () const ;
X::sizetypeX:: size () const ;
X::sizetypeX:: maxsize () const ;
bool X:: empty () const ;
void X:: swap (X&x);
voidX:: clear ();
2Containers
templatehclass T ,
class A lloc=allocatori
class vector ;
Seealso2.2and2.3.
sizetypevector:: capacity () const ;
voidvector:: reserve (sizetypen);
vector::reference
vector:: operator[] (sizetypei);
vector::constreference
vector:: operator[] (sizetypei) const ;
+ 7.1.
2.5Deque
#include<deque>
2.1Pair
#include<utility>
templatehclass T 1,class T 2i
struct pair {
T 1 first ; T 2 second ;
pair(){}
pair( const T 1&a, const T 2&b):
first(a),second(b){}};
2.2.3ComparisonOperators
Let, Xv,w.Xmayalsobepair(2.1).
v == w v != w
v < w v > w
v <= w v >= w
Alldonelexicographicallyand xbool .
2.7.1Types
ForA=[multi]set,columnsarethesame
A:: keytype A:: valuetype
A:: keycompare A:: valuecompare
2.7.2Constructors
A::A( C omparec= C ompare())
A::A(A::constiteratorfirst,
A::constiterator last,
C ompare c= C ompare());
2.7.3Members
A::keycompare A:: keycomp () const ;
A::valuecompareA:: valuecomp () const ;
A::iterator
A:: insert (A::iterator hint,
const A::valuetype&val);
voidA:: insert (A::iteratorfirst,
A::iterator last);
A::sizetyp e //#erased
A:: erase ( const A::keytype&k);
voidA:: erase (A::iteratorp);
voidA:: erase (A::iteratorfirst,
A::iterator last);
2.1.1Types
pair:: firsttype
pair:: secondtype
templatehclass T ,
class A lloc=allocatori
class deque ;
Hasallofvectorfunctionality(see2.4).
voiddeque:: pushfront ( const T &x);
voiddeque:: popfront ();
2.6List
#include<list>
templatehclass T ,
class A lloc=allocatori
2.3SequenceContainers
Sisanyof{vector,deque,list}
2.1.2Functions&Operators
Seealso2.2.3.
pairh T 1, T 2i
makepair ( const T 1&, const T 2&);
2.3.1Constructors
S::S(S::sizetype n,
const S::valuetype&t);
S::S(S::constiteratorfirst,
S::constiterator last); + 7.2,7.3
2.2Containers—Common
HereXisanyof
{vector,deque,list,
set,multiset,map,multimap}
2.3.2Members
S::iterator//insertedcopy
S:: insert (S::iterator before,
const S::valuetype&val);
S::iterator//insertedcopy
S:: insert (S::iterator before,
S::sizetype nVal,
const S::valuetype&val);
S::iterator//insertedcopy
S:: insert (S::iterator before,
S::constiteratorfirst,
S::constiterator last);
S:iteratorS:: erase (S::iteratorposition);
2.2.1Types
class list ;
Seealso2.2and2.3.
voidlist:: popfront ();
voidlist:: pushfront ( const T &x);
void//moveallx( &x 6= this )beforepos
list:: splice (iteratorpos,listh T i&x); + 7.2
void//movex’sxElemPosbeforepos
list:: splice (iterator pos,
listh T i&x,
iterator xElemPos); + 7.2
X:: valuetype
X:: reference
X:: constreference
X:: iterator
X:: constiterator
X:: reverseiterator
X:: constreverseiterator
X:: dierencetype
X:: sizetype
Iteratorsreferencevaluetype(See6).
A::sizetype
A:: count ( const A::keytype&k) const ;
A::iteratorA:: find ( const A::keytype&k) const ;
d http://www.medini.org/stl/stl.html
) yotam.medini@gmail.com
YotamMedinic 1998-2007
965061150.395.png 965061150.406.png 965061150.417.png 965061150.428.png 965061150.001.png 965061150.012.png 965061150.023.png 965061150.034.png 965061150.044.png 965061150.055.png 965061150.066.png 965061150.077.png 965061150.088.png 965061150.099.png 965061150.110.png 965061150.121.png 965061150.132.png 965061150.143.png 965061150.154.png 965061150.165.png 965061150.176.png 965061150.187.png 965061150.198.png 965061150.209.png 965061150.220.png 965061150.230.png 965061150.241.png 965061150.252.png 965061150.262.png 965061150.273.png 965061150.284.png 965061150.295.png 965061150.305.png 965061150.316.png 965061150.327.png 965061150.338.png 965061150.349.png 965061150.360.png 965061150.371.png 965061150.380.png 965061150.381.png 965061150.382.png 965061150.383.png 965061150.384.png 965061150.385.png 965061150.386.png 965061150.387.png 965061150.388.png 965061150.389.png 965061150.390.png 965061150.391.png 965061150.392.png 965061150.393.png 965061150.394.png 965061150.396.png 965061150.397.png 965061150.398.png 965061150.399.png 965061150.400.png 965061150.401.png 965061150.402.png 965061150.403.png 965061150.404.png 965061150.405.png 965061150.407.png 965061150.408.png 965061150.409.png 965061150.410.png 965061150.411.png 965061150.412.png 965061150.413.png 965061150.414.png 965061150.415.png 965061150.416.png 965061150.418.png 965061150.419.png 965061150.420.png 965061150.421.png 965061150.422.png 965061150.423.png 965061150.424.png 965061150.425.png 965061150.426.png 965061150.427.png 965061150.429.png 965061150.430.png 965061150.431.png 965061150.432.png 965061150.433.png 965061150.434.png 965061150.435.png 965061150.436.png 965061150.437.png 965061150.438.png 965061150.002.png 965061150.003.png 965061150.004.png 965061150.005.png 965061150.006.png 965061150.007.png 965061150.008.png 965061150.009.png 965061150.010.png 965061150.011.png 965061150.013.png 965061150.014.png 965061150.015.png 965061150.016.png 965061150.017.png 965061150.018.png 965061150.019.png 965061150.020.png 965061150.021.png 965061150.022.png 965061150.024.png 965061150.025.png 965061150.026.png 965061150.027.png 965061150.028.png 965061150.029.png 965061150.030.png 965061150.031.png 965061150.032.png 965061150.033.png
 
2
STLQuickReference–Version1.29 [A4] April20,2007
2.10.2Members
A::iterator
A:: lowerbound ( const A::keytype&k) const ;
A::iterator
A:: upperbound ( const A::keytype&k) const ;
pairhA::iterator,A::iteratori//see4.3.1
A:: equalrange ( const A::keytype&k) const ;
multimap::constiterator
multimap :: lo werbound (
const multimap::keytype&k) const ;
multimap::constiterator
multimap :: up perbound (
const multimap::keytype&k) const ;
pairhmultimap::constiterator,
multimap::constiteratori
multimap:: equalrange (
const multimap::keytype&k) const ;
void
queue:: push ( const C ontainer::valuetype&x);
voidqueue:: pop ();
const
map :: map (
const
C ompare&cmp= C ompare());
pairhmap::iterator,booli// bool =ifnew
map:: insert ( const map::valuetype&x);
T &map: operator[] ( const map::keytype&);
map::constiterator
map :: lo werbound (
const map::keytype&k) const ;
map::constiterator
map :: up perbound (
const map::keytype&k) const ;
pairhmap::constiterator,map::constiteratori
map:: equalrange (
const map::keytype&k) const ;
Example
C ontainer:: val uetype&
queue:: front () const ;
C ontainer::valuetype&queue:: front ();
const
C ontainer:: val uetype&
queue:: back () const ;
C ontainer::valuetype&queue:: back ();
ComparisionOperators
bool operator == ( const queue&q0,
const queue&q1);
bool operator < ( const queue&q0,
const queue&q1);
2.8Set
#include<set>
templatehclass K ey,
class C ompare=lessh K eyi,
class A lloc=allocatori
3ContainerAdaptors
3.1StackAdaptor
#include<stack>
class set ;
Seealso2.2and2.7.
set :: set ( const C ompare&cmp= C ompare());
pairhset::iterator,booli// bool =ifnew
set:: insert ( const set::valuetype&x);
3.3PriorityQueue
#include<queue>
templatehclass T ,
class C ontainer=dequeh T ii
class stack ;
Defaultconstructor. C ontainermusthave
back() , pushback() , popback() .Sovector,
listanddequecanbeused.
boolstack:: empty () const ;
C ontainer::sizetypestack:: size () const ;
void
stack:: push ( const C ontainer::valuetype&x);
voidstack:: pop ();
const
typedefmap<string,int>MSI;
MSI nam2num;
nam2num.insert(MSI::value_type("one",1));
nam2num.insert(MSI::value_type("two",2));
nam2num.insert(MSI::value_type("three",3));
intn3=nam2num["one"]+nam2num["two"];
cout<<n3<<"called";
for(MSI::const_iteratori=nam2num.begin();
i!=nam2num.end(); ++i)
if((*i).second==n3)
{cout<<(*i).first<<endl;}
' à 3calledthree
2.11Multimap
templatehclass T ,
class C ontainer=vectorh T i,
class C ompare=lessh T ii
class priorityqueue ;
C ontainermustproviderandomaccessiterator
andhave empty() , size() , front() , pushback()
and popback() .Sovectoranddequecanbe
used.
Mostlyimplementedasheap.
2.9Multiset
#include<multiset.h>
templatehclass K ey,
class C ompare=lessh K eyi,
class A lloc=allocatori
class multiset ;
Seealso2.2and2.7.
multiset :: multiset (
const
C ontainer::valuetype&
stack:: top () const ;
void C ontainer::valuetype&stack:: top ();
ComparisionOperators
bool operator == ( const stack&s0,
const stack&s1);
bool operator < ( const stack&s0,
const stack&s1);
3.3.1Constructors
explicit priorityqueue::priorityqueue (
const
C ompare&cmp= C ompare());
multiset :: multiset (
I nputIterator first,
I nputIterator last,
const
#include<multimap.h>
C ompare&comp= C ompare());
priorityqueue::priorityqueue (
I nputIterator first,
I nputIterator last,
const
templatehclass K ey,class T ,
class C ompare=lessh K eyi,
class A lloc=allocatori
class multimap ;
C ompare&cmp= C ompare());
multiset::iterator//insertedcopy
multiset:: insert ( const multiset::valuetype&x);
C ompare&comp= C ompare());
3.3.2Members
boolpriorityqueue:: empty () const ;
C ontainer::sizetype
priorityqueue:: size () const ;
const
3.2QueueAdaptor
#include<queue>
Seealso2.2and2.7.
2.10Map
#include<map>
2.11.1Types
multimap:: valuetype //pairh const K ey, T i
templatehclass T ,
class C ontainer=dequeh T ii
class queue ;
Defaultconstructor. C ontainermusthave
empty() , size() , back() , front() , pushback()
and popfront() .Solistanddequecanbe
used.
boolqueue:: empty () const ;
C ontainer::sizetypequeue:: size () const ;
templatehclass K ey,class T ,
class C ompare=lessh K eyi,
class A lloc=allocatori
class map ;
Seealso2.2and2.7.
C ontainer::valuetype&
priorityqueue:: top () const ;
C ontainer::valuetype&priorityqueue:: top ();
voidpriorityqueue:: push (
const
2.11.2Members
multimap :: multimap (
const
C ompare&cmp= C ompare());
multimap :: multimap (
I nputIterator first,
I nputIterator last,
const
C ontainer::valuetype&x);
voidpriorityqueue:: pop ();
Nocomparisionoperators.
2.10.1Types
map:: valuetype //pairh const K ey, T i
C ompare&cmp= C ompare());
d http://www.medini.org/stl/stl.html
) yotam.medini@gmail.com
YotamMedinic 1998-2007
965061150.035.png 965061150.036.png 965061150.037.png 965061150.038.png 965061150.039.png 965061150.040.png 965061150.041.png 965061150.042.png 965061150.043.png 965061150.045.png 965061150.046.png 965061150.047.png 965061150.048.png 965061150.049.png 965061150.050.png 965061150.051.png 965061150.052.png 965061150.053.png 965061150.054.png 965061150.056.png 965061150.057.png 965061150.058.png 965061150.059.png 965061150.060.png 965061150.061.png 965061150.062.png 965061150.063.png 965061150.064.png 965061150.065.png 965061150.067.png 965061150.068.png 965061150.069.png 965061150.070.png 965061150.071.png 965061150.072.png 965061150.073.png 965061150.074.png 965061150.075.png 965061150.076.png 965061150.078.png 965061150.079.png 965061150.080.png 965061150.081.png 965061150.082.png 965061150.083.png 965061150.084.png 965061150.085.png 965061150.086.png 965061150.087.png 965061150.089.png 965061150.090.png 965061150.091.png 965061150.092.png 965061150.093.png 965061150.094.png 965061150.095.png 965061150.096.png 965061150.097.png 965061150.098.png 965061150.100.png 965061150.101.png 965061150.102.png 965061150.103.png 965061150.104.png 965061150.105.png 965061150.106.png 965061150.107.png 965061150.108.png 965061150.109.png 965061150.111.png 965061150.112.png 965061150.113.png 965061150.114.png 965061150.115.png 965061150.116.png 965061150.117.png 965061150.118.png 965061150.119.png 965061150.120.png 965061150.122.png 965061150.123.png 965061150.124.png 965061150.125.png 965061150.126.png 965061150.127.png 965061150.128.png 965061150.129.png 965061150.130.png 965061150.131.png 965061150.133.png 965061150.134.png 965061150.135.png 965061150.136.png 965061150.137.png 965061150.138.png 965061150.139.png 965061150.140.png 965061150.141.png 965061150.142.png 965061150.144.png 965061150.145.png 965061150.146.png 965061150.147.png 965061150.148.png 965061150.149.png 965061150.150.png 965061150.151.png 965061150.152.png 965061150.153.png 965061150.155.png 965061150.156.png 965061150.157.png 965061150.158.png 965061150.159.png 965061150.160.png 965061150.161.png 965061150.162.png 965061150.163.png 965061150.164.png 965061150.166.png 965061150.167.png 965061150.168.png 965061150.169.png 965061150.170.png 965061150.171.png 965061150.172.png 965061150.173.png 965061150.174.png 965061150.175.png 965061150.177.png 965061150.178.png 965061150.179.png 965061150.180.png 965061150.181.png 965061150.182.png 965061150.183.png 965061150.184.png 965061150.185.png 965061150.186.png 965061150.188.png 965061150.189.png 965061150.190.png 965061150.191.png 965061150.192.png 965061150.193.png 965061150.194.png 965061150.195.png 965061150.196.png 965061150.197.png 965061150.199.png 965061150.200.png 965061150.201.png 965061150.202.png 965061150.203.png 965061150.204.png 965061150.205.png 965061150.206.png 965061150.207.png 965061150.208.png 965061150.210.png 965061150.211.png 965061150.212.png 965061150.213.png 965061150.214.png 965061150.215.png 965061150.216.png 965061150.217.png 965061150.218.png 965061150.219.png 965061150.221.png
 
STLQuickReference–Version1.29 [A4] April20,2007
3
4Algorithms
O utputIterator//8s k i 2S k r i =bop(s 1 i ,s 2 i )
transform ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
O utputIterator result,
B inaryOperationbop);
void replace ( F orwardIterator first,
F orwardIterator last,
const
F orwardIterator//asabovebutusingpred
removeif ( F orwardIterator first,
F orwardIterator last,
P redicate pred);
O utputIterator// x pastlastcopied
removecopy ( I nputIterator first,
I nputIterator last,
O utputIterator result,
const
// x bi-pointingtofirstbinPred-mismatch
pairh I nputIterator1, I nputIterator2i
mismatch ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
B inaryPredicate binPred);
#include<algorithm>
STLalgorithmsuseiteratortypeparameters.
Theirnamessuggesttheircategory(See6.1).
Forabbreviation,theclause—
template h class F oo ,... i isdropped.The
outlinedleadingcharactercansuggestthe
template context.
Note:Whenlookingattwosequences:
S 1 =[first 1 ,last 1 )andS 2 =[first 2 ,?)or
S 2 =[?,last 2 )—callerisresponsiblethat
functionwillnotoverflowS 2 .
bool
equal ( I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2);
T & value);
O utputIterator//asabovebutusingpred
removecopyif ( I nputIterator first,
I nputIterator last,
O utputIterator result,
P redicate pred);
Allvariantsof unique templatefunctions
removeconsecutive(binPred-)duplicates.Thus
usefullaftersort(See4.3).
F orwardIterator//[ x ,last)getsrepetitions
unique ( F orwardIterator first,
F orwardIterator last);
F orwardIterator//asabovebutusingbinPred
unique ( F orwardIterator first,
F orwardIterator last,
B inaryPredicate binPred);
O utputIterator// x pastlastcopied
uniquecopy ( I nputIterator first,
I nputIterator last,
O utputIterator result,
const
T & oldVal,
T & newVal);
const
bool
equal ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
B inaryPredicate binPred);
// [first 2 ,last 2 )v[first 1 ,last 1 )
F orwardIterator1
search ( F orwardIterator1first1,
F orwardIterator1 last1,
F orwardIterator2first2,
F orwardIterator2 last2);
// [first 2 ,last 2 )v binPred [first 1 ,last 1 )
F orwardIterator1
search ( F orwardIterator1first1,
F orwardIterator1 last1,
F orwardIterator2first2,
F orwardIterator2 last2,
B inaryPredicate binPred);
4.2MutatingAlgorithms
O utputIterator// x first 2 +(last 1 −first 1 )
copy ( I nputIterator first1,
I nputIterator last1,
O utputIterator first2);
// x last 2 −(last 1 −first 1 )
B idirectionalIterator2
copybackward (
B idirectionalIterator1first1,
B idirectionalIterator1 last1,
B idirectionalIterator2 last2);
void swap ( T &x, T &y);
F orwardIterator2// x first 2 +#[first 1 ,last 1 )
swapranges ( F orwardIterator1first1,
F orwardIterator1 last1,
F orwardIterator2first2);
O utputIterator// x result+(last 1 −first 1 )
transform ( I nputIterator first,
I nputIterator last,
O utputIterator result,
U naryOperationop); + 7.6
void
replaceif ( F orwardIterator first,
F orwardIterator last,
P redicate& pred,
const
4.1QueryAlgorithms
F unction//fnotchanging[first,last)
foreach ( I nputIterator first,
I nputIterator last,
F unction f); + 7.4
I nputIterator//firstisoi == lastor *i==val
find ( I nputIterator first,
I nputIterator last,
const
T & newVal);
O utputIterator// x result 2 +#[first,last)
replacecopy ( I nputIterator first,
I nputIterator last,
O utputIterator result,
const
T & oldVal,
T & newVal);
O utputIterator//asabovebutusingpred
replacecopyif ( I nputIterator first,
I nputIterator last,
O utputIterator result,
P redicate& pred,
const
const
T val); + 7.2
I nputIterator//firstisoi == lastor pred(i)
findif ( I nputIterator first,
I nputIterator last,
P redicate pred); + 7.7
F orwardIterator//firstduplicate
adjacentfind ( F orwardIterator first,
F orwardIterator last);
F orwardIterator//firstbinPred-duplicate
adjacentfind ( F orwardIterator first,
F orwardIterator last,
B inaryPredicate binPred);
void//n=#equalval
count ( F orwardIterator first,
F orwardIterator last,
const
T & newVal);
void fill ( F orwardIterator first,
F orwardIterator last,
const
T & result);
O utputIterator//asabovebutusingbinPred
uniquecopy ( I nputIterator first,
I nputIterator last,
O utputIterator result,
B inaryPredicate binPred);
T & value);
void filln ( F orwardIterator first,
S ize n,
const
void
reverse ( B idirectionalIterator first,
B idirectionalIterator last);
O utputIterator// x pastlastcopied
reversecopy ( B idirectionalIterator first,
B idirectionalIterator last,
O utputIterator result);
void//withfirstmovedtomiddle
rotate ( F orwardIterator first,
F orwardIteratormiddle,
F orwardIterator last);
O utputIterator//firsttomiddleposition
rotatecopy ( F orwardIterator first,
F orwardIteratormiddle,
F orwardIterator last,
O utputIterator result);
T & value);
void//bycallinggen()
generate ( F orwardIterator first,
F orwardIterator last,
G enerator gen);
T val,
S ize& n);
void//n=#satisfyingpred
countif ( F orwardIterator first,
F orwardIterator last,
P redicate pred,
S ize& n);
// x bi-pointingtofirst !=
pairh I nputIterator1, I nputIterator2i
mismatch ( I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2);
void//ncallstogen()
generaten ( F orwardIterator first,
S ize n,
G enerator gen);
Allvariantsof remove and unique return
iteratortonewendorpastlastcopied.
F orwardIterator//[ x ,last)isallvalue
remove ( F orwardIterator first,
F orwardIterator last,
const
T & value);
d http://www.medini.org/stl/stl.html
) yotam.medini@gmail.com
YotamMedinic 1998-2007
965061150.222.png 965061150.223.png 965061150.224.png 965061150.225.png 965061150.226.png 965061150.227.png 965061150.228.png 965061150.229.png 965061150.231.png 965061150.232.png 965061150.233.png 965061150.234.png 965061150.235.png 965061150.236.png 965061150.237.png 965061150.238.png 965061150.239.png 965061150.240.png 965061150.242.png 965061150.243.png 965061150.244.png 965061150.245.png 965061150.246.png 965061150.247.png 965061150.248.png 965061150.249.png 965061150.250.png 965061150.251.png 965061150.253.png 965061150.254.png
 
4
STLQuickReference–Version1.29 [A4] April20,2007
R andomAccessIterator
partialsortcopy (
I nputIterator first,
I nputIterator last,
R andomAccessIterator resultFirst,
R andomAccessIterator resultLast,
C ompare comp);
Letn=position−first, nthelement
partitions[first,last)into:L=[first,position),
e n ,R=[position+1,last)suchthat
8l2L,8r2Rl6>e n r.
void
nthelement (
R andomAccessIterator first,
R andomAccessIterator position,
R andomAccessIterator last);
void//asabovebutusingcomp(e i ,e j )
nthelement (
R andomAccessIterator first,
R andomAccessIterator position,
R andomAccessIterator last,
C ompare
void
randomshue (
R andomAccessIterator first,
R andomAccessIterator result);
void//rand()returns double in[0,1)
randomshue (
R andomAccessIterator first,
R andomAccessIterator last,
R andomGenerator rand);
B idirectionalIterator//beginwith true
partition ( B idirectionalIterator first,
B idirectionalIterator last,
P redicate pred);
B idirectionalIterator//beginwith true
stablepartition (
B idirectionalIterator first,
B idirectionalIterator last,
P redicate pred);
4.3SortandApplication
void sort ( R andomAccessIterator first,
R andomAccessIterator last);
void sort ( R andomAccessIterator first,
R andomAccessIterator last,
+ 7.3 C ompare
bool //S 1 S 2
includes ( I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2,
I nputIterator2 last2);
bool //asabovebutusingcomp
includes ( I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2,
I nputIterator2 last2,
C ompare comp);
O utputIterator//S 1 [S 2 , x pastend
setunion ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result);
O utputIterator//asabovebutusingcomp
setunion ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result,
C ompare comp);
O utputIterator//S 1 \S 2 , x pastend
setintersection ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result);
O utputIterator//asabovebutusingcomp
setintersection ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result,
C ompare comp);
O utputIterator//S 1 \S 2 , x pastend
setdierence ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result);
O utputIterator//asabovebutusingcomp
setdierence ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result,
C ompare comp);
equalrangereturnsiteratorspairthat
lowerboundandupperboundreturn.
pairh F orwardIterator, F orwardIteratori
equalrange ( F orwardIterator first,
F orwardIterator last,
const
T & value);
pairh F orwardIterator, F orwardIteratori
equalrange ( F orwardIterator first,
F orwardIterator last,
const
T & value,
C ompare comp);
+ 7.5
4.3.2Merge
AssumingS 1 =[first 1 ,last 1 )and
S 2 =[first 2 ,last 2 )aresorted,stablymergethem
into[result,result+N)whereN=|S 1 |+|S 2 |.
O utputIterator
merge ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result);
O utputIterator
merge ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result,
C ompare comp);
void//ranges[first,middle)[middle,last)
inplacemerge (//into[first,last)
B idirectionalIterator first,
B idirectionalIteratormiddle,
B idirectionalIterator last);
void//asabovebutusingcomp
inplacemerge (
B idirectionalIterator first,
B idirectionalIteratormiddle,
B idirectionalIterator last,
C ompare comp);
comp);
4.3.1BinarySearch
bool
binarysearch ( F orwardIterator first,
F orwardIterator last,
const
comp);
T & value);
void
stablesort ( R andomAccessIterator first,
R andomAccessIterator last);
bool
binarysearch ( F orwardIterator first,
F orwardIterator last,
const
void
stablesort ( R andomAccessIterator first,
R andomAccessIterator last,
C ompare comp);
void //[first,middle)sorted,
partialsort (//[middle,last)eq-greater
R andomAccessIterator first,
R andomAccessIteratormiddle,
R andomAccessIterator last);
void//asabovebutusingcomp(e i ,e j )
partialsort (
R andomAccessIterator first,
R andomAccessIteratormiddle,
R andomAccessIterator last,
C ompare comp);
R andomAccessIterator//postlastsorted
partialsortcopy (
I nputIterator first,
I nputIterator last,
R andomAccessIterator resultFirst,
R andomAccessIterator resultLast);
T & value,
C ompare comp);
F orwardIterator
lowerbound ( F orwardIterator first,
F orwardIterator last,
const
T & value);
ForwardIterator
lowerbound ( F orwardIterator first,
F orwardIterator last,
const
T & value,
C ompare comp);
F orwardIterator
upperbound ( F orwardIterator first,
F orwardIterator last,
const
4.3.3FunctionsonSets
T & value);
Canworkonsortedassocicativecontainers(see
2.7).Formultisettheinterpretationof—
union,intersectionanddierenceisby:
maximum,minimumandsubstractionof
occurrencesrespectably.
LetS i =[first i ,last i )fori=1,2.
ForwardIterator
upperbound ( F orwardIterator first,
F orwardIterator last,
const
T & value,
C ompare comp);
d http://www.medini.org/stl/stl.html
) yotam.medini@gmail.com
YotamMedinic 1998-2007
965061150.255.png 965061150.256.png 965061150.257.png 965061150.258.png 965061150.259.png 965061150.260.png 965061150.261.png 965061150.263.png 965061150.264.png 965061150.265.png 965061150.266.png 965061150.267.png 965061150.268.png 965061150.269.png 965061150.270.png 965061150.271.png 965061150.272.png 965061150.274.png 965061150.275.png 965061150.276.png 965061150.277.png 965061150.278.png 965061150.279.png 965061150.280.png 965061150.281.png 965061150.282.png 965061150.283.png 965061150.285.png 965061150.286.png 965061150.287.png 965061150.288.png 965061150.289.png 965061150.290.png 965061150.291.png 965061150.292.png 965061150.293.png 965061150.294.png
 
STLQuickReference–Version1.29 [A4] April20,2007
5
O utputIterator//S 1 M S 2 , x pastend
setsymmetricdierence (
I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result);
O utputIterator//asabovebutusingcomp
setsymmetricdierence (
I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
I nputIterator2 last2,
O utputIterator result,
C ompare comp);
4.3.4Heap
O utputIterator//r k =s k −s k 1 fork>0
adjacentdierence ( //r 0 =s 0
I nputIterator first,
I nputIterator last,
O utputIterator result);
4.3.5MinandMax
4.3.7LexicographicOrder
T & min ( const T &x0, const T &x1);
bool lexicographicalcompare (
I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2,
I nputIterator2 last2);
bool lexicographicalcompare (
I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2,
I nputIterator2 last2,
C ompare comp);
const
T & min ( const T & x0,
const
const
T & x1,
C ompare comp);
O utputIterator //asabovebutusingbinop
adjacentdierence (
I nputIterator first,
I nputIterator last,
O utputIterator result,
B inaryOperationbinop);
T & max ( const T &x0, const T &x1);
const
T & max ( const T & x0,
const
const
T & x1,
C ompare comp);
F orwardIterator
minelement ( F orwardIterator first,
F orwardIterator last);
5FunctionObjects
4.4Computational
#include<functional>
F orwardIterator
minelement ( F orwardIterator first,
F orwardIterator last,
C ompare comp);
#include<numeric>
T // P [ first , last ) + 7.6
accumulate ( I nputIterator first,
I nputIterator last,
T initVal);
T //asabovebutusingbinop
accumulate ( I nputIterator first,
I nputIterator last,
T initVal,
B inaryOperationbinop);
T // P i e 1 i ×e 2 i fore k i 2S k ,(k=1,2)
innerproduct ( I nputIterator1first1,
I nputIterator1 last1,
I nputIterator2first2,
T initVal);
T //Similar,using P ( sum ) and× mult
innerproduct ( I nputIterator1 first1,
I nputIterator1 last1,
I nputIterator2 first2,
T initVal,
B inaryOperation sum,
B inaryOperationmult);
O utputIterator //r k = P first +k
void//(last−1)ispushed
pushheap ( R andomAccessIterator first,
R andomAccessIterator last);
void//asabovebutusingcomp
pushheap ( R andomAccessIterator first,
R andomAccessIterator last,
C ompare
templatehclass A rg,class R esulti
struct unaryfunction {
typedef A rg argumenttype ;
typedef R esult resulttype ;}
F orwardIterator
maxelement ( F orwardIterator first,
F orwardIterator last);
Derivedunaryobjects:
struct negate h T i;
struct logicalnot h T i;
+ 7.6
comp);
F orwardIterator
maxelement ( F orwardIterator first,
F orwardIterator last,
C ompare comp);
void//firstispopped
popheap ( R andomAccessIterator first,
R andomAccessIterator last);
void//asabovebutusingcomp
popheap ( R andomAccessIterator first,
R andomAccessIterator last,
C ompare
templatehclass A rg1,class A rg2,
class R esulti
struct binaryfunction {
typedef A rg1 firstargumenttype ;
typedef A rg2 secondargumenttype ;
typedef R esult resulttype ;}
4.3.6Permutations
Togetallpermutations,startwithascending
sequenceendwithdescending.
bool // x iavailable
nextpermutation (
B idirectionalIterator first,
B idirectionalIterator last);
bool //asabovebutusingcomp
nextpermutation (
B idirectionalIterator first,
B idirectionalIterator last,
C ompare comp);
bool // x iavailable
prevpermutation (
B idirectionalIterator first,
B idirectionalIterator last);
bool //asabovebutusingcomp
prevpermutation (
B idirectionalIterator first,
B idirectionalIterator last,
C ompare comp);
comp);
void//[first,last)arbitraryordered
makeheap ( R andomAccessIterator first,
R andomAccessIterator last);
void//asabovebutusingcomp
makeheap ( R andomAccessIterator first,
R andomAccessIterator last,
C ompare
Followingderivedtemplateobjectsaccepttwo
operands.Resultobviousbythename.
struct plus h T i;
struct minus h T i;
struct multiplies h T i;
struct divides h T i;
struct modulus h T i;
struct equalto h T i;
struct notequalto h T i;
struct greater h T i;
struct less h T i;
struct greaterequal h T i;
struct lessequal h T i;
struct logicaland h T i;
struct logicalor h T i;
comp);
void//sortthe[first,last)heap
sortheap ( R andomAccessIterator first,
R andomAccessIterator last);
void//asabovebutusingcomp
sortheap ( R andomAccessIterator first,
R andomAccessIterator last,
C ompare
i= first e i
partialsum ( I nputIterator first,
I nputIterator last,
O utputIterator result);
O utputIterator //asabovebutusingbinop
partialsum (
I nputIterator first,
I nputIterator last,
O utputIterator result,
B inaryOperationbinop);
comp);
d http://www.medini.org/stl/stl.html
) yotam.medini@gmail.com
YotamMedinic 1998-2007
965061150.296.png 965061150.297.png 965061150.298.png 965061150.299.png 965061150.300.png 965061150.301.png 965061150.302.png 965061150.303.png 965061150.304.png 965061150.306.png 965061150.307.png 965061150.308.png 965061150.309.png 965061150.310.png 965061150.311.png 965061150.312.png 965061150.313.png 965061150.314.png 965061150.315.png 965061150.317.png 965061150.318.png 965061150.319.png 965061150.320.png 965061150.321.png 965061150.322.png 965061150.323.png 965061150.324.png 965061150.325.png 965061150.326.png 965061150.328.png 965061150.329.png 965061150.330.png 965061150.331.png 965061150.332.png 965061150.333.png 965061150.334.png 965061150.335.png 965061150.336.png 965061150.337.png 965061150.339.png 965061150.340.png 965061150.341.png 965061150.342.png 965061150.343.png 965061150.344.png 965061150.345.png 965061150.346.png 965061150.347.png 965061150.348.png 965061150.350.png 965061150.351.png 965061150.352.png 965061150.353.png 965061150.354.png 965061150.355.png 965061150.356.png 965061150.357.png 965061150.358.png 965061150.359.png 965061150.361.png 965061150.362.png 965061150.363.png 965061150.364.png 965061150.365.png 965061150.366.png 965061150.367.png 965061150.368.png 965061150.369.png 965061150.370.png 965061150.372.png 965061150.373.png 965061150.374.png 965061150.375.png 965061150.376.png 965061150.377.png 965061150.378.png 965061150.379.png
 
Zgłoś jeśli naruszono regulamin