473,320 Members | 1,926 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

map iterators -- Circulators?

I would like to make the map iterators cyclic. i.e.
If I I do a it-- when it = map.begin() then it gives
it.end()-1 and when I do it++ when it= it.end()-1, I would
like to get it.begin().

Any comments on how to do this?

Thanks,
--j

Jul 23 '05 #1
5 1073
John wrote:
I would like to make the map iterators cyclic. i.e.
If I I do a it-- when it = map.begin() then it gives
it.end()-1 and when I do it++ when it= it.end()-1, I would
like to get it.begin().

Any comments on how to do this?

Thanks,
--j


What happens when the map has just one entry, or is empty? (:

Larry

--
Anti-spam address, change each 'X' to '.' to reply directly.
Jul 23 '05 #2
Larry I Smith wrote:
John wrote:
I would like to make the map iterators cyclic. i.e.
If I I do a it-- when it = map.begin() then it gives
it.end()-1 and when I do it++ when it= it.end()-1, I would
like to get it.begin().

Any comments on how to do this?


What happens when the map has just one entry, or is empty? (:


You are a spoilsport :-)

Jul 23 '05 #3
> I would like to make the map iterators cyclic. i.e.
If I I do a it-- when it = map.begin() then it gives
it.end()-1 and when I do it++ when it= it.end()-1, I would
like to get it.begin().


The problem is that usually, iterators do not know about their
containers, so you'll have to wrap the standard iterator along with the
container in a new class, which will implement all the operators. These
should simply forward the call to the iterator, except for ++, -- and
the like which will do the checking and wrap around.

Jonathan

Jul 23 '05 #4
> What happens when the map has just one entry..

It increments or decrements to the same entry :-)
..., or is empty? (:


It increments or decrements forever searching for the next entry.
Infinite loop.
Big Red Switch time :-)

Stephen Howe
Jul 23 '05 #5

Jonathan Mcdougall wrote:
I would like to make the map iterators cyclic. i.e.
If I I do a it-- when it = map.begin() then it gives
it.end()-1 and when I do it++ when it= it.end()-1, I would
like to get it.begin().
The problem is that usually, iterators do not know about their
containers, so you'll have to wrap the standard iterator along with

the container in a new class, which will implement all the operators. These should simply forward the call to the iterator, except for ++, -- and
the like which will do the checking and wrap around.


In fact, that's not a problem at all IF the iterator is
constructed from a pair of iterators (begin,end). You
don't have to know where the iterator points to, just
when to wrap. In fact, the advantage of using an iterator
range is that it will also work if you're interested in
a subset of map values (e.g. only positive keys).

The only wrapper class is then the iterator wrapper. In
fact, there are libraries that do this already (VTL).

HTH,
Michiel Salters

Jul 23 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

10
by: Steven Bethard | last post by:
So, as I understand it, in Python 3000, zip will basically be replaced with izip, meaning that instead of returning a list, it will return an iterator. This is great for situations like: zip(*)...
18
by: deancoo | last post by:
I have gotten into the habit of often using copy along with an insert iterator. There are scenarios where I process quite a lot of data this way. Can someone give me a general feel as to how much...
1
by: Marcin Kaliciñski | last post by:
template<class RanAccIt> void some_algorithm(RanAccIt begin, RanAccIt end) { // this algorithm involves calling std::lexicographical_compare // on range [begin, end), and on reverse of this range...
3
by: codefixer | last post by:
Hello, I am trying to understand if ITERATORS are tied to CONTAINERS. I know the difference between 5 different or 6(Trivial, on SGI). But what I fail to understand is how can I declare all 5...
8
by: babak | last post by:
Hi everyone I have a problem with Iterators and containers in STL that hopefully someone can help me with. This is what I try to do: I have an associative (map) container and I have a...
24
by: Lasse Vågsæther Karlsen | last post by:
I need to merge several sources of values into one stream of values. All of the sources are sorted already and I need to retrieve the values from them all in sorted order. In other words: s1 = ...
2
by: ma740988 | last post by:
typedef std::vector < std::complex < double > > complex_vec_type; // option1 int main() { complex_vec_type cc ( 24000 ); complex_vec_type dd ( &cc, &cc ); } versus
90
by: John Salerno | last post by:
I'm a little confused. Why doesn't s evaluate to True in the first part, but it does in the second? Is the first statement something different? False print 'hi' hi Thanks.
18
by: desktop | last post by:
1) I have this code: std::list<intmylist; mylist.push_back(1); mylist.push_back(2); mylist.push_back(3); mylist.push_back(4);
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
0
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.