mirror of https://github.com/axmolengine/axmol.git
issue #2790: Vector::remove —> Vector::erase.
This commit is contained in:
parent
b66fccb5ab
commit
093e310cab
cocos/base
|
@ -37,6 +37,34 @@ template<class T>
|
||||||
class CC_DLL Vector
|
class CC_DLL Vector
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// ------------------------------------------
|
||||||
|
// Iterators
|
||||||
|
// ------------------------------------------
|
||||||
|
typedef typename std::vector<T>::iterator iterator;
|
||||||
|
typedef typename std::vector<T>::const_iterator const_iterator;
|
||||||
|
|
||||||
|
typedef typename std::vector<T>::reverse_iterator reverse_iterator;
|
||||||
|
typedef typename std::vector<T>::const_reverse_iterator const_reverse_iterator;
|
||||||
|
|
||||||
|
iterator begin() { return _data.begin(); }
|
||||||
|
const_iterator begin() const { return _data.begin(); }
|
||||||
|
|
||||||
|
iterator end() { return _data.end(); }
|
||||||
|
const_iterator end() const { return _data.end(); }
|
||||||
|
|
||||||
|
const_iterator cbegin() const { return _data.cbegin(); }
|
||||||
|
const_iterator cend() const { return _data.cend(); }
|
||||||
|
|
||||||
|
reverse_iterator rbegin() { return _data.rbegin(); }
|
||||||
|
const_reverse_iterator rbegin() const { return _data.rbegin(); }
|
||||||
|
|
||||||
|
reverse_iterator rend() { return _data.rend(); }
|
||||||
|
const_reverse_iterator rend() const { return _data.rend(); }
|
||||||
|
|
||||||
|
const_reverse_iterator crbegin() const { return _data.crbegin(); }
|
||||||
|
const_reverse_iterator crend() const { return _data.crend(); }
|
||||||
|
|
||||||
|
/** Constructor */
|
||||||
Vector<T>()
|
Vector<T>()
|
||||||
: _data()
|
: _data()
|
||||||
{
|
{
|
||||||
|
@ -230,7 +258,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Remove a certain object */
|
/** Remove a certain object */
|
||||||
void removeObject(T object, bool toRelease = true)
|
void erase(T object, bool toRelease = true)
|
||||||
{
|
{
|
||||||
CCASSERT(object != nullptr, "The object should not be nullptr");
|
CCASSERT(object != nullptr, "The object should not be nullptr");
|
||||||
auto iter = std::find(_data.begin(), _data.end(), object);
|
auto iter = std::find(_data.begin(), _data.end(), object);
|
||||||
|
@ -241,7 +269,24 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Removes an element with a certain index */
|
/** Removes an element with a certain index */
|
||||||
void remove(int index)
|
iterator erase(const_iterator position)
|
||||||
|
{
|
||||||
|
CCASSERT(position >= _data.begin() && position < _data.end(), "Invalid position!");
|
||||||
|
(*position)->release();
|
||||||
|
return _data.erase(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
iterator erase(const_iterator first, const_iterator last)
|
||||||
|
{
|
||||||
|
for (auto iter = first; iter != last; ++iter)
|
||||||
|
{
|
||||||
|
(*iter)->release();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _data.erase(first, last);
|
||||||
|
}
|
||||||
|
|
||||||
|
void erase(int index)
|
||||||
{
|
{
|
||||||
CCASSERT(!_data.empty() && index >=0 && index < size(), "Invalid index!");
|
CCASSERT(!_data.empty() && index >=0 && index < size(), "Invalid index!");
|
||||||
auto it = std::next( begin(), index );
|
auto it = std::next( begin(), index );
|
||||||
|
@ -352,33 +397,6 @@ public:
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------
|
|
||||||
// Iterators
|
|
||||||
// ------------------------------------------
|
|
||||||
typedef typename std::vector<T>::iterator iterator;
|
|
||||||
typedef typename std::vector<T>::const_iterator const_iterator;
|
|
||||||
|
|
||||||
typedef typename std::vector<T>::reverse_iterator reverse_iterator;
|
|
||||||
typedef typename std::vector<T>::const_reverse_iterator const_reverse_iterator;
|
|
||||||
|
|
||||||
iterator begin() { return _data.begin(); }
|
|
||||||
const_iterator begin() const { return _data.begin(); }
|
|
||||||
|
|
||||||
iterator end() { return _data.end(); }
|
|
||||||
const_iterator end() const { return _data.end(); }
|
|
||||||
|
|
||||||
const_iterator cbegin() const { return _data.cbegin(); }
|
|
||||||
const_iterator cend() const { return _data.cend(); }
|
|
||||||
|
|
||||||
reverse_iterator rbegin() { return _data.rbegin(); }
|
|
||||||
const_reverse_iterator rbegin() const { return _data.rbegin(); }
|
|
||||||
|
|
||||||
reverse_iterator rend() { return _data.rend(); }
|
|
||||||
const_reverse_iterator rend() const { return _data.rend(); }
|
|
||||||
|
|
||||||
const_reverse_iterator crbegin() const { return _data.crbegin(); }
|
|
||||||
const_reverse_iterator crend() const { return _data.crend(); }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void addRefForAllObjects()
|
void addRefForAllObjects()
|
||||||
|
|
Loading…
Reference in New Issue