Nested Vector Nester Classes are Nested in my Brain 
November 8th, 2005, 02:45 AM
| | | |
Hello someone said that I should check this forum out for help to my c++
problems.
I will admit at this point I may have really ran myself into the ground
with this code that I am writing, but I'm hoping for a little help from
you guys.
I have a class that needs use of a bread-first search of a quareney tree.
In this class I have a nested class that should be the implementation of a
tree that contains two nested classes of its own. Those two classes are a
Position representation of cartestian coordinate with accessors and
modifiers and comparison methods. The other inner class is a treenode
class. This class holds several things, first of all a * to a vector of
TreeNode * that represent children nodes, A Position as its Payload, A *
to the parent TreeNode, and * pointer to a Maze object no mentioned above.
So, my problem is that as I iterate over my children vector I would like
to access the payload members accessors of the current treenode in the
vector. Except I get this instead:
error: request for member `payload' in `
*(&p1)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator->
[with _Iterator = cs371p::prog::robowars4::Robot::Tree::TreeNode**,
_Container =
std::vector<cs371p::prog::robowars4::Robot::Tree:: TreeNode*,
std::allocator<cs371p::prog::robowars4::Robot::Tre e::TreeNode*> >]()',
which
is of non-class type `cs371p::prog::robowars4::Robot::Tree::TreeNode*'
The line of code looks like this:
vector< TreeNode *>::iterator p1;
for(p1 = children->begin();p1 != children->end();++p1)
This LINE RIGHT HERE->>>> p1->payload->getX();
Please, lemme know what you think any feed back is appreciated
--Chad | 
November 8th, 2005, 03:05 AM
| | | | re: Nested Vector Nester Classes are Nested in my Brain
Chad E. Dollins wrote:
[color=blue]
>
> Hello someone said that I should check this forum out for help to my c++
> problems.
>
> I will admit at this point I may have really ran myself into the ground
> with this code that I am writing, but I'm hoping for a little help from
> you guys.
>
> I have a class that needs use of a bread-first search of a quareney tree.
> In this class I have a nested class that should be the implementation of a
> tree that contains two nested classes of its own. Those two classes are a
> Position representation of cartestian coordinate with accessors and
> modifiers and comparison methods. The other inner class is a treenode
> class. This class holds several things, first of all a * to a vector of
> TreeNode * that represent children nodes, A Position as its Payload, A *
> to the parent TreeNode, and * pointer to a Maze object no mentioned above.
>
> So, my problem is that as I iterate over my children vector I would like
> to access the payload members accessors of the current treenode in the
> vector. Except I get this instead:
> error: request for member `payload' in `
> *(&p1)->__gnu_cxx::__normal_iterator<_Iterator,
> _Container>::operator->
> [with _Iterator = cs371p::prog::robowars4::Robot::Tree::TreeNode**,
> _Container =
> std::vector<cs371p::prog::robowars4::Robot::Tree:: TreeNode*,
> std::allocator<cs371p::prog::robowars4::Robot::Tre e::TreeNode*> >]()',
> which
> is of non-class type `cs371p::prog::robowars4::Robot::Tree::TreeNode*'
>
> The line of code looks like this:
> vector< TreeNode *>::iterator p1;
> for(p1 = children->begin();p1 != children->end();++p1)
> This LINE RIGHT HERE->>>> p1->payload->getX();[/color]
Try
(*p1)->payload->getX();
Keep in mind: p1 is an iterator; *p1 is the element of the vector it
designates; this element is itself a pointer pointing to some element that
presumably has a member "payload".
[color=blue]
>
> Please, lemme know what you think any feed back is appreciated
>
> --Chad[/color]
Best
Kai-Uwe Bux | 
November 8th, 2005, 04:35 AM
| | | | re: Nested Vector Nester Classes are Nested in my Brain
Ok same question as before accept this temp trying to call member function
with from an index of the vector<TreeNode * > * myMoves
error ridden code:
myMoves[x]->makeChildren();
On Mon, 7 Nov 2005, Kai-Uwe Bux wrote:
[color=blue]
> Chad E. Dollins wrote:
>[color=green]
>>
>> Hello someone said that I should check this forum out for help to my c++
>> problems.
>>
>> I will admit at this point I may have really ran myself into the ground
>> with this code that I am writing, but I'm hoping for a little help from
>> you guys.
>>
>> I have a class that needs use of a bread-first search of a quareney tree.
>> In this class I have a nested class that should be the implementation of a
>> tree that contains two nested classes of its own. Those two classes are a
>> Position representation of cartestian coordinate with accessors and
>> modifiers and comparison methods. The other inner class is a treenode
>> class. This class holds several things, first of all a * to a vector of
>> TreeNode * that represent children nodes, A Position as its Payload, A *
>> to the parent TreeNode, and * pointer to a Maze object no mentioned above.
>>
>> So, my problem is that as I iterate over my children vector I would like
>> to access the payload members accessors of the current treenode in the
>> vector. Except I get this instead:
>> error: request for member `payload' in `
>> *(&p1)->__gnu_cxx::__normal_iterator<_Iterator,
>> _Container>::operator->
>> [with _Iterator = cs371p::prog::robowars4::Robot::Tree::TreeNode**,
>> _Container =
>> std::vector<cs371p::prog::robowars4::Robot::Tree:: TreeNode*,
>> std::allocator<cs371p::prog::robowars4::Robot::Tre e::TreeNode*> >]()',
>> which
>> is of non-class type `cs371p::prog::robowars4::Robot::Tree::TreeNode*'
>>
>> The line of code looks like this:
>> vector< TreeNode *>::iterator p1;
>> for(p1 = children->begin();p1 != children->end();++p1)
>> This LINE RIGHT HERE->>>> p1->payload->getX();[/color]
>
> Try
> (*p1)->payload->getX();
>
> Keep in mind: p1 is an iterator; *p1 is the element of the vector it
> designates; this element is itself a pointer pointing to some element that
> presumably has a member "payload".
>[color=green]
>>
>> Please, lemme know what you think any feed back is appreciated
>>
>> --Chad[/color]
>
>
> Best
>
> Kai-Uwe Bux
>[/color] | 
November 8th, 2005, 05:05 AM
| | | | re: Nested Vector Nester Classes are Nested in my Brain
Chad E. Dollins wrote:
[color=blue]
>
> Ok same question as before accept this temp trying to call member function
> with from an index of the vector<TreeNode * > * myMoves
> error ridden code:
>
> myMoves[x]->makeChildren();[/color]
You just need to keep track of the types involved:
myMoves is a *pointer* to a *vector* of *pointers*. Thus, first dereference
(now you have a vector) then use the subscript operator (now you have a
pointer), then dereference again to call the member function.
((*myMoves)[x])->makeChildren();
Best
Kai-Uwe Bux |  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 225,702 network members.
|