Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Version 1 (modified by patrick, 19 years ago) (diff)

Module Description

How to use certain modules in the Orxonox Framework

list

There is a list template called "tList" use it as follows:

Use in Functions without Global Reference

It you just want to create a new list and just quickly use it make it as follows:

#include "list.h"                           /* include the header */
#include "debug.h"                          /* for use of PRINTF */
.
.
.
tList<char>* nameList = new tList<char*>(); /* create the new list*/

nameList->add("Pumba");                     /* add some elements*/
nameList->add("Mogli");
nameList->add("Timon");

tIterator<char>* nameIterator = nameList->getIterator(); /* get the iterator - JAVA style */
char name* = nameIterator->nextElement();   /* this returns the FIRST element */
while( name != NULL)                        /* nextElement() will return NULL at the end */
{
  PRINTF(3)("found name: %s in list\n", name);
  name = nameIterator->nextElement();       /* give back the next element or NULL if last */
}
.
.

This code will have an output like this:

found name: Pumpa in list
found name: Mogli in list
found name: Timon in list

You can make lists of whatever you want eg also from WorldEntities:

#include "list.h"
.
.
tList<WorldEntity>* entityList = new tList<WorldEntity>();  /* crete new list*/
entityList->add(new WorldEntity());                         /* just adds an new entity */
.
.

And you can make Lists of Lists :))

#include "list.h"
.
.
tList<char>* nameList = new tList<char>();
tList<tList<char> >* nameListList = new tList<tList<char> >(); /* don't forget the space (_): >_> 
                                                                  otherwhise it will be interpreted 
                                                                  as an operator 
                                                               */
.
.

Now I hear you screem: "ENOUGH"! And you are right…:)

Use in Header Files

If you want a list as a class attribute you have to make a forward declaration of the list:

#inlcude "list.h"                 /* include the header of the list */

template<class T> class tList;    /* forward declaration of the list */

class ExampleClass
{
 private:
  tList<>
};