0% found this document useful (0 votes)
11 views

C++ Iterators (1)

The document provides an overview of C++ Iterators, which are pointer-like objects used to represent an element's position in a container and facilitate iteration over its elements. It discusses various types of iterators, including input, output, forward, bi-directional, and random access iterators, along with their operations and advantages. The use of iterators is emphasized for working with algorithms, saving memory, maintaining a uniform approach to different data containers, and simplifying code.

Uploaded by

singhabhi983886
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

C++ Iterators (1)

The document provides an overview of C++ Iterators, which are pointer-like objects used to represent an element's position in a container and facilitate iteration over its elements. It discusses various types of iterators, including input, output, forward, bi-directional, and random access iterators, along with their operations and advantages. The use of iterators is emphasized for working with algorithms, saving memory, maintaining a uniform approach to different data containers, and simplifying code.

Uploaded by

singhabhi983886
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

C++ Standard Template Library

Iterators

- Love Babbar
·

C++ Standard Template Library


·

& Iterators

- Love Babbar
crantor
it

#01/
C++ Iterators
&
• An iterator is a pointer-like object representing an element's position in a container. It is used to iterate over elements in a container.

=
-

• Suppose we have a vector named nums of size 4. Then, begin() and end()
are member functions that return iterators pointing to the beginning and
end of the vector respectively.

--• nums.begin() points to the first element in the vector i.e 0th index
• nums.begin() + i points to the element at the ith index.
• nums.end() points to one element past the final element in the vector

I
&-
-

i
-

&
itator nwns
end()

l
begin
-

Ye
>
-
nun
-

10 20
nurs. begin() #
+2
-

ends
nums
Do
Creating & Traversing - Iterators
-
-
-
-

- &
& -
-
=

-

L its =

it Y and

Iterator Operations
-

-
-

- v 0
20

I
30
2
no
3

its - m

or &
·


(i
Al +)om
+

its >
- iterator

Eiteog O
, its
erbein()
=

=
its ++
d
&

J
pair)
A k v inL
it -
first it
d
locatio adding

it s
As pair) edit) &
&
k -
v e second
second its A
-

&
it
A&
A
yair
Ake
& value at

where
position
its is
pair
<

k + j pointing
Iterator Types
~ -
- -
-

-
- -
-
-
-1 -

- -

-
-

-
- - -

-
-

T A 1 -
1
Input Iterator - donly=>
-
>
-

forward moving

These iterators can only be used for reading values from a container in a forward direction. They are typically used for

&&
algorithms that need to read data from a container, such as std::find or std::for_each.

&
-
Output Iterator i formed only moving
-
>
-

• These iterators can only be used for writing values to a container in a forward direction. They are less commonly used
compared to other iterator types.

-
- V
Forward Iterator
-
I Di
&
forward -
-
read T

• These iterators combine the capabilities of both input and output iterators. They allow reading and writing values in a
forward direction. Many container types, like lists, support forward iterators.

list. end()
begin
&
I I
list-
-
-

-D &
·

A 7 -
-

-
T

X
X

-
>
- list/& Forward &
-> it t

Bi-directional Iterator >


>
- Backed -
O
Grad
•These iterators can move both forward and backward within a container. They are supported by containers like lists
and double-ended queues (deques).

Site
I
Tail Intend
i-
gil ,
Head
- F
2 -
d -

#
&

A
3 -

18 >
- 20 >
2
>
-
30
&
-E
-

&
-
-
Random Access Iterator
>
- -porit/ forward/
read

Random
-
-

Backmail

These iterators offer full navigation capabilities, allowing you to move to any element within a container in constant

don
time. Vectors, arrays, and deques provide random access iterators

-
-
+ 3

&
it

to
*
* or

be begin
-
- begin &
by
-
- ⑳ - ) +

u
it
*
101201 so 50
0 2 Y
Operations supported by Iterators
Why use Iterators ?
• Working with Algorithms: C++ has many ready-to-use algorithms like finding

Be
elements, sorting, and summing values. Iterators help you apply these
algorithms to different types of data containers like arrays or lists.
• Saving Memory: Instead of loading a huge set of data all at once, iterators let
you deal with one item at a time, which saves memory.
• Uniform Approach: Iterators allow you to interact with different kinds of data
containers (like vectors or sets) in the same way. This makes your code more
consistent and easier to manage.
• Simpler Code: By using iterators, a lot of the repetitive details of going through
data are taken care of, making your code cleaner and easier to read.
Why use Iterators ?
• Working with Algorithms: C++ has many ready-to-use algorithms like finding
elements, sorting, and summing values. Iterators help you apply these
algorithms to different types of data containers like arrays or lists.
• Saving Memory: Instead of loading a huge set of data all at once, iterators let
you deal with one item at a time, which saves memory.
• Uniform Approach: Iterators allow you to interact with different kinds of data
containers (like vectors or sets) in the same way. This makes your code more
consistent and easier to manage.
• Simpler Code: By using iterators, a lot of the repetitive details of going through
data are taken care of, making your code cleaner and easier to read.
Why use Iterators ?
• Working with Algorithms: C++ has many ready-to-use algorithms like finding
elements, sorting, and summing values. Iterators help you apply these
algorithms to different types of data containers like arrays or lists.
• Saving Memory: Instead of loading a huge set of data all at once, iterators let
you deal with one item at a time, which saves memory.
• Uniform Approach: Iterators allow you to interact with different kinds of data
containers (like vectors or sets) in the same way. This makes your code more
consistent and easier to manage.
• Simpler Code: By using iterators, a lot of the repetitive details of going through
data are taken care of, making your code cleaner and easier to read.

You might also like