Inserting into map while using iterator?

H

Henrik Goldman

Hello,

I would like to know if it's legal to insert one or more items into a
std::map while traversing it from begin() to end().

E.g.

for (it = mymap.begin(); it != mymap.end(); it++)
{
if (condition)
mymap[key] = data;
}

Will the iterator get invalidated?

Thanks.

-- Henrik
 
G

Guest

Hello,

I would like to know if it's legal to insert one or more items into a
std::map while traversing it from begin() to end().

E.g.

for (it = mymap.begin(); it != mymap.end(); it++)
{
if (condition)
mymap[key] = data;
}

Will the iterator get invalidated?


No, inserting elements into a (multi)map/set does not invalidate
iterators, also erasing elements only invalidates iterators to the
deleted elements.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top