Boost logo

Boost Users :

Subject: Re: [Boost-users] [iterators][range][rangeex] range concatenation
From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2009-04-06 17:46:34


Dmitry Vinogradov skrev:

> Calling process_range() twice is not a solution in my case. Copying
> references to a new container is a better way.
>
> Regarding efficiency, can you look thru my rough concat() implementation
> attached to discover any its disadvantages?

Wow. Nice work!

Some comments:

0. I prefer to use unsigned instead of std::size_t. std::size_t can be
larger than a word IIRC.

1.
You can call Stabilize() in increment().

2.
You should probably check It == End1 before Range == 0, because
Range == 0 will be true most of the time during the iteration through
the first range.

3. How can you avoid to store the second end iterator?

How does the performace compare to creating a vector of references?
(remember to call reserve()).

If the performance is good,this baby should be included in the range
library asap.

-Thorsten


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net