vector problem?

I have a segment of code which is failing. It's is something implement many other times, but somehow in this instance is not working. the code segment is:

vector<SystemNode*>::iterator node_itr = gvp_SystemNodes.begin();
while(node_itr != gvp_SystemNodes.end());
{
  ~~~~~~~
}

when it gets to the while statment, it is stuck in a loop. The code does not crash, it just forever loops inside the std vector code. I have not figured out whats its doing. Since that was really weird I also tried this:

vector<SystemNode*>::iterator node_itr = gvp_SystemNodes.begin();
while(node_itr != gvp_SystemNodes.begin());
{
  ~~~~~~~
}

And the code went right into the while loop. When in debug mode and watching the vector, it seems to evaluate correctly.  What could be going on here?

Thanks,

mattososkyAsked:
Who is Participating?
 
evilrixSenior Software Engineer (Avast)Commented:
You have semi-colons are the end of your while statement!

while(pred); <---- LOOK
{
}
0
 
Infinity08Commented:
Are you actually incrementing the iterator ?

vector<SystemNode*>::iterator node_itr = gvp_SystemNodes.begin();
while(node_itr != gvp_SystemNodes.end());
{
  ~~~~~~~
  ++node_itr;
}
0
 
Infinity08Commented:
Also, I assume that gvp_SystemNodes is defined as vector<SystemNode*> ?
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
mattososkyAuthor Commented:
yes, <SystemNode*>...

Its not looping inside the while statement. It's looping inside 'gvp_SystemNodes.end()'. Never gets insode the while statement.
0
 
Infinity08Commented:
>> It's looping inside 'gvp_SystemNodes.end()'.

What do you mean by that ? What's inside the loop block ? Can you show the exact code you are using ? If that's not possible, can you create a small demonstration code that shows the problem ?

What compiler are you using ?
0
 
evilrixSenior Software Engineer (Avast)Commented:
>> It's looping inside 'gvp_SystemNodes.end()
Wow, that's a neat trick :)

There isn't really too much that can go wrong inside end() on VS2005 -- I agree with I8, we need code :)
0
 
mattososkyAuthor Commented:
Ha! exactly my problem. I step through the code and it's inside the vector source code file, travles through about three functions until it returns the pointer. But then it executes the while statement again.

Have I hit a bug in the vector? Or something wrong with my compiler (VS2008)?

Again,, another very strange symptom,, listed in my intial post. If I set the while statment to !=~.begin(), it does enter the while statement when it clearly should not.

?
0
 
Infinity08Commented:
>> Have I hit a bug in the vector?

For something as basic as this, it sounds quite unlikely.

Can you try creating a new project, and putting the code in there - just to make sure it's not related to project corruption of some kind.

Do you have the same problem for any code that loops through a vector ?

Can you show some complete sample code that has the problem ?


Are you sure that the compiler has been installed correctly ?
0
 
Infinity08Commented:
>> You have semi-colons are the end of your while statement!

Oh my ... Completely missed that lol
0
 
mattososkyAuthor Commented:
There is another instance in the program where i declare a itr with a different name, but it works fine.
vector<SystemNode*>::iterator itr = gvp_SystemNodes.begin();
      while(itr!=gvp_SystemNodes.end())
      {


I would probably have to post alot of code for you to get the context....
0
 
evilrixSenior Software Engineer (Avast)Commented:
>> You have semi-colons are the end of your while statement!
Does your code behave as per my example below? If so I'd suggest that's your problem.
#include <vector>
 
typedef std::vector<int> intvec_t;
 
int main()
{
	intvec_t intvec(10);
	intvec_t::const_iterator i = intvec.begin();
 
	while(i != intvec.end());
	{
	}
}

Open in new window

0
 
mattososkyAuthor Commented:
I'm a bad boy....
0
 
evilrixSenior Software Engineer (Avast)Commented:
>> I'm a bad boy....
Muhahahaha :)
0
 
Infinity08Commented:
>> I'm a bad boy....

Yes you are ;) Confusing me like that lol. Glad evilrix was around to spot it, or I would have gone off on a wild goose chase heh.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.