Added an utility class for lists.
This commit is contained in:
parent
0bf4b59922
commit
af8541fb17
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
* Copyright 2009-2010, Pier Luigi Fiorini. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _LIST_H
|
||||
#define _LIST_H
|
||||
|
||||
#include <list>
|
||||
|
||||
#include <SupportDefs.h>
|
||||
|
||||
template<class T>
|
||||
class List {
|
||||
public:
|
||||
uint32 CountItems() const;
|
||||
|
||||
void AddItem(T type);
|
||||
|
||||
void RemoveItemAt(uint32 position);
|
||||
|
||||
TYPE ItemAt(uint32 position);
|
||||
|
||||
private:
|
||||
std::list<T> fList;
|
||||
typedef typename std::list<T>::iterator fIter;
|
||||
};
|
||||
|
||||
|
||||
template<class T>
|
||||
uint32 List<T>::CountItems() const
|
||||
{
|
||||
return fList.size();
|
||||
}
|
||||
|
||||
|
||||
template<class T>
|
||||
void List<T>::AddItem(T type)
|
||||
{
|
||||
fList.push(type);
|
||||
}
|
||||
|
||||
|
||||
template<class T>
|
||||
void List<T>::RemoveItemAt(uint32 position)
|
||||
{
|
||||
fIter i = fMap.begin();
|
||||
std::advance(i, position);
|
||||
fList.erase(i);
|
||||
}
|
||||
|
||||
|
||||
template<class T>
|
||||
T List<T>::ItemAt(uint32 position)
|
||||
{
|
||||
fIter i = fList.begin();
|
||||
std::advance(i, position);
|
||||
if (i == fList.end())
|
||||
return NULL;
|
||||
return i;
|
||||
}
|
||||
|
||||
#endif // _LIST_H
|
Ŝarĝante…
Reference in New Issue