Re: New learner : PLEASE help, STL customer iterator
cai_xiaodong@hotmail.com writes:
I am very new to STL and generic programming. PLEASE help.
I have my own class looks like:
class pixelProperty {
public:
// get-functions here...
private:
Point mPosition;
int mCenterID;
Color mColor;
}
Basically the pixelProperty represents a 2D image data. To make it
more convenience for pixle random access, I would like to use the
Vector container in STL but with an "enhanced" iterator which give me
more convenience such as using a member function in the iterator,
myiterator::neighbor(x,y), which give me a 2d-style random access.
My questions are:
1) Can I acutally make my customer iterator by composition or inherit
from the vector::iterator
Not very usefully. Please see
http://www.boost.org/libs/iterator/doc/index.html
http://www.boost.org/libs/iterator/doc/iterator_facade.html#tutorial-example
http://www.boost.org/libs/iterator/doc/iterator_adaptor.html#tutorial-example
if you want to define your own iterators. Unless you're an STL expert
and *extremely* careful, it's very difficult to define correct
iterators otherwise.
(how about deriving from or composing the
vector container class
Can't help with the iterators, really; those are separate types.
- I read some posts in the forum but not fully understand.... )
. if it is possible, could any one can be kind enough to show me an
example?
2) I would like to use a customer a random access iterator with the
STL algorithm (such as find()), take the pixelProperty as the data
type, how can I implement this STL-compatible iterator?
See above, and good luck.
--
Dave Abrahams
Boost Consulting
www.boost-consulting.com
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]