CCSet

#ifndef __CC_SET_H__

#define __CC_SET_H__


#include <set>

#include "CCObject.h"


NS_CC_BEGIN


/**

 * @addtogroup data_structures

 * @{

 */


typedef std::set<CCObject *>::iterator CCSetIterator;


class CC_DLL CCSet : public CCObject

{

public:

    CCSet(void);

    CCSet(const CCSet &rSetObject);

    virtual ~CCSet(void);


    /**

    * @brief Create and return a new empty set.

    */

    static CCSet * create();


    /**

    *@brief Return a copy of the CCSet, it will copy all the elements.

    */

    CCSet* copy();

    /**

    *@brief It is the same as copy().

    */

    CCSet* mutableCopy();

    /**

    *@brief Return the number of elements the CCSet contains.

    */

    int count();

    /**

    *@brief Add a element into CCSet, it will retain the element.

    */

    void addObject(CCObject *pObject);

    /**

    *@brief Remove the given element, nothing todo if no element equals pObject.

    */

    void removeObject(CCObject *pObject);

    /**

     *@brief Remove all elements of the set

     */

    void removeAllObjects();

    /**

    *@brief Check if CCSet contains a element equals pObject.

    */

    bool containsObject(CCObject *pObject);

    /**

    *@brief Return the iterator that points to the first element.

    */

    CCSetIterator begin();

    /**

    *@brief Return the iterator that points to the position after the last element.

    */

    CCSetIterator end();

    /**

    *@brief Return the first element if it contains elements, or null if it doesn't contain any element.

    */

    CCObject* anyObject();


    virtual void acceptVisitor(CCDataVisitor &visitor);


private:

    std::set<CCObject *> *m_pSet;

};


// end of data_structure group

/// @}


NS_CC_END


#endif // __CC_SET_H__


posted @ 2014-05-22 21:13  sssssnian  阅读(347)  评论(0)    收藏  举报