|
@@ -39,6 +39,9 @@ namespace spine {
|
|
template<typename T>
|
|
template<typename T>
|
|
class SP_API Vector : public SpineObject {
|
|
class SP_API Vector : public SpineObject {
|
|
public:
|
|
public:
|
|
|
|
+ using size_type = size_t;
|
|
|
|
+ using value_type = T;
|
|
|
|
+
|
|
Vector() : _size(0), _capacity(0), _buffer(NULL) {
|
|
Vector() : _size(0), _capacity(0), _buffer(NULL) {
|
|
}
|
|
}
|
|
|
|
|
|
@@ -118,14 +121,14 @@ namespace spine {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- inline void addAll(Vector<T> &inValue) {
|
|
|
|
|
|
+ inline void addAll(const Vector<T> &inValue) {
|
|
ensureCapacity(this->size() + inValue.size());
|
|
ensureCapacity(this->size() + inValue.size());
|
|
for (size_t i = 0; i < inValue.size(); i++) {
|
|
for (size_t i = 0; i < inValue.size(); i++) {
|
|
add(inValue[i]);
|
|
add(inValue[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- inline void clearAndAddAll(Vector<T> &inValue) {
|
|
|
|
|
|
+ inline void clearAndAddAll(const Vector<T> &inValue) {
|
|
this->clear();
|
|
this->clear();
|
|
this->addAll(inValue);
|
|
this->addAll(inValue);
|
|
}
|
|
}
|
|
@@ -172,6 +175,12 @@ namespace spine {
|
|
return _buffer[inIndex];
|
|
return _buffer[inIndex];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ inline const T &operator[](size_t inIndex) const {
|
|
|
|
+ assert(inIndex < _size);
|
|
|
|
+
|
|
|
|
+ return _buffer[inIndex];
|
|
|
|
+ }
|
|
|
|
+
|
|
inline friend bool operator==(Vector<T> &lhs, Vector<T> &rhs) {
|
|
inline friend bool operator==(Vector<T> &lhs, Vector<T> &rhs) {
|
|
if (lhs.size() != rhs.size()) {
|
|
if (lhs.size() != rhs.size()) {
|
|
return false;
|
|
return false;
|
|
@@ -190,6 +199,13 @@ namespace spine {
|
|
return !(lhs == rhs);
|
|
return !(lhs == rhs);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Vector &operator=(const Vector &inVector) {
|
|
|
|
+ if (this != &inVector) {
|
|
|
|
+ clearAndAddAll(inVector);
|
|
|
|
+ }
|
|
|
|
+ return *this;
|
|
|
|
+ }
|
|
|
|
+
|
|
inline T *buffer() {
|
|
inline T *buffer() {
|
|
return _buffer;
|
|
return _buffer;
|
|
}
|
|
}
|
|
@@ -223,7 +239,6 @@ namespace spine {
|
|
buffer->~T();
|
|
buffer->~T();
|
|
}
|
|
}
|
|
|
|
|
|
- // Vector &operator=(const Vector &inVector) {};
|
|
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|