Overloading pointer arithmetic
I'm trying to use pointer arithmetic with the standard library and I am feeling cramped. I am using the below iterator in my code.
#include <list>
using namespace std;
typedef list::iterator LI;
When I make a loop like this:
for(LI i = polygonToSplit.begin(); i != polygonToSplit.end(); ++i){}
I have to use ++i, or else I get an error. How do overload the +-*/ operators so I can incrimenta my loop by something like "i+2"? Thanks in advance.
//Edit: Added the include and namespace
[edited by - executor_2k2 on July 29, 2002 1:54:42 AM]
I''ve been able to use the +/- operators with iterators. Have you tried "+=" or "-="? I don''t remember if they work or not. Otherwise you might try: ++(++it). That is one statement I''ve never tested, so I can''t tell you if it would work.
i+=2 works. It would seem you have to modify "i" itself. Anyone know why? I need to find a way that doesnt change the value of i because im going to using the "+ 2" inside the loop, and I was hoping there was a clean way to access other elements in the array other than i without making a copy of i and incrimenting that copy with "++".
[edited by - executor_2k2 on July 29, 2002 3:00:29 AM]
[edited by - executor_2k2 on July 29, 2002 3:00:29 AM]
learn what you use
its a list
list doesn''t allow random access. you can''t simply jump to item i in it, you have to go trhough. a vector allows random access. not a list..
all in the docu
"take a look around" - limp bizkit
www.google.com
its a list
list doesn''t allow random access. you can''t simply jump to item i in it, you have to go trhough. a vector allows random access. not a list..
all in the docu
"take a look around" - limp bizkit
www.google.com
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement