Stl Quick Reference Card Page 7

ADVERTISEMENT

STL Quick Reference – Version 1.29
7
April 20, 2007
[A4]
7
Examples
6.3
Typedefs & Adaptors
6.3.3
Insert Iterators
Denote
reverse iterator
RI =
andomAccessIterator
ontainer
ategory
=
.
AI
R
7.1
Vector
template class
C
template
,
,
C
T
istance
class
back insert iterator
:
// safe get
=ptrdiff t,
Abbreviate:
D
ointer
eference
public output iterator;
int
vi(const vector<unsigned>& v, int i)
typedef RI
,
,
AI
T
=
*,
=
&
P
T
R
T
eference
istance
{ return(i < (int)v.size() ? (int)v[i] : -1);}
self
,
;
iterator
R
D
class
ontainer
ategory
template class
iterator category
C
;
C
// safe set
Default constructor
singular value
front insert iterator
class
:
value type
;
T
void vin(vector<int>& v, unsigned i, int n) {
istance
self::RI();
public output iterator;
difference type
int
nAdd = i - v.size() + 1;
;
D
ointer
if (nAdd>0) v.insert(v.end(), nAdd, n);
explicit
Adaptor Constructor
pointer
;
P
eference
ontainer
else v[i] = n;
reference
self::RI(
i);
;
AI
R
template class
C
}
insert iterator
class
:
base
6.3.1
Traits
self::
();
adpatee’s position
AI
7.2
List Splice
public output iterator;
eference
ontainer
void lShow(ostream& os, const list<int>& l) {
so that:
&*(RI(i)) == &*(i-1)
R
template
I
Here
will denote the
::value type.
T
C
operator *
ostream_iterator<int> osi(os, " ");
self::
();
iterator traits
class
Constructors
copy(l.begin(), l.end(), osi); os<<endl;}
ontainer
::iterator category
I
self
position to & return base()-1
const
explicit
::push back(
&)
C
T
iterator category
;
operator
++
void lmShow(ostream& os, const char* msg,
RI::
();
back insert iterator::back insert iterator(
ontainer
const list<int>& l,
value type
::value type
;
I
& x);
C
self&
return old position and move
ontainer
const list<int>& m) {
difference type
::difference type
;
I
const
operator
explicit
::push front(
&)
RI::
++
(int);
to base()-1
C
T
os << msg << (m.size() ? ":\n" : ": ");
pointer
::pointer
;
I
front insert iterator::front insert iterator(
lShow(os, l);
ontainer
reference
::reference
;
I
self
position to & return base()+1
if (m.size()) lShow(os, m); } // lmShow
& x);
C
ontainer
operator
--
RI::
();
const
::insert(
&)
C
T
Pointer specilaizations:
7.8
list<int>::iterator p(list<int>& l, int val)
insert iterator::insert iterator(
self&
return old position and move
ontainer
{ return find(l.begin(), l.end(), val);}
RI::
operator
--
(int);
to base()+1
x,
C
template
T
ontainer
static int prim[] = {2, 3, 5, 7};
::iterator
i);
iterator traits
C
class
*
T
static int perf[] = {6, 28, 496};
bool
s0.base() == s1.base()
Denote
random access iterator tag
const list<int> lPrimes(prim+0, prim+4);
operator
= =
(
const
self& s0,
const
self& s1);
back insert iterator
InsIter =
iterator category
;
const list<int> lPerfects(perf+0, perf+3);
push back
insFunc =
list<int> l(lPrimes), m(lPerfects);
value type
;
T
reverse iterator Specific
back inserter
iterMaker =
7.4
lmShow(cout, "primes & perfects", l, m);
difference type
ptrdiff t
;
or
l.splice(l.begin(), m);
pointer
self
returned value positioned at base()-n
*
;
front insert iterator
T
InsIter =
lmShow(cout, "splice(l.beg, m)", l, m);
reverse iterator::
operator
+
(
push front
reference
insFunc =
&
;
T
istance
l = lPrimes; m = lPerfects;
front inserter
n)
const
;
iterMaker =
D
l.splice(l.begin(), m, p(m, 28));
or
lmShow(cout, "splice(l.beg, m, ^28)", l, m);
template
T
insert iterator
self&
change & return position to base()-n
InsIter =
m.erase(m.begin(), m.end()); // <=>m.clear()
istance
iterator traits
class
const
*
T
insert
insFunc =
operator
reverse iterator::
+=
(
n);
D
l = lPrimes;
random access iterator tag
l.splice(p(l, 3), l, p(l, 5));
iterator category
;
self
returned value positioned at base()+n
lmShow(cout, "5 before 3", l, m);
value type
operator
-
Member Functions & Operators
;
reverse iterator::
(
T
l = lPrimes;
istance
difference type
ptrdiff t
;
const
l.splice(l.begin(), l, p(l, 7), l.end());
n)
;
D
InsIter&
calls x.insFunc(val)
lmShow(cout, "tail to head", l, m);
const
pointer
*
;
T
operator
=
const
InsIter::
(
& val);
T
self&
change & return position to base()+n
l = lPrimes;
const
reference
&
;
istance
T
InsIter&
return *this
l.splice(l.end(), l, l.begin(), p(l, 3));
operator
-=
reverse iterator::
(
n);
D
InsIter::
operator *
();
lmShow(cout, "head to tail", l, m);
6.3.2
Reverse Iterator
eference
InsIter&
no-op, just return *this
R
*(*this + n)
operator
+ +
istance
InsIter::
();
reverse iterator::
operator[ ]
(
n);
Transform [
)
[
1
1).
D
InsIter&
no-op, just return *this
primes & perfects:
operator
+ +
istance
InsIter::
(int);
2 3 5 7
ter
r0.base() - r1.base()
D
template
I
6 28 496
Template Function
operator
-
(
const
self& r0,
const
self& r1);
reverse iterator
ontainer
class
: public iterator
splice(l.beg, m): 6 28 496 2 3 5 7
ter
InsIter
return InsIter
(x)
C
splice(l.beg, m, ^28):
ontainer
iterator traits
::iterator category,
I
ter
self
n + r.base()
iterMaker(
& x);
28 2 3 5 7
istance
C
iterator traits
::value type,
I
ontainer
operator
-
ter
(
n,
const
self& r);
D
6 496
return insert iterator
(x, i)
C
iterator traits
::difference type,
I
ontainer
5 before 3: 2 5 3 7
ter
insert iterator
C
iterator traits
::pointer,
bool
r0.base()
r1.base()
I
tail to head: 7 2 3 5
ontainer
terator
ter
operator
<
const
const
inserter
(
self& r0,
self& r1);
(
& x,
i);
C
I
head to tail: 3 5 7 2
iterator traits
::reference ;
I
Yotam Medini c 1998-2007

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Education
Go
Page of 8