#ifndef QVECTOR_H
#define QVECTOR_H
#include <QtCore/qiterator.h>
#include <QtCore/qatomic.h>
#include <QtCore/qalgorithms.h>
#include <QtCore/qlist.h>
#ifndef QT_NO_STL
#include <iterator>
#include <vector>
#endif
#include <stdlib.h>
#include <string.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QVectorData{
public: struct QBasicAtomic ref;
public: int alloc;
public: int size;
public: unsigned int sharable:1;
public: static struct QVectorData shared_null;
public: static struct QVectorData* malloc(int sizeofTypedData, int size, int sizeofT, struct QVectorData* init);
public: static int grow(int sizeofTypedData, int size, int sizeofT, bool excessive);
};
template < typename T > struct QVectorTypedData{
public: struct QBasicAtomic ref;
public: int alloc;
public: int size;
public: unsigned int sharable;
public: T array[1];
};
template < typename T > class QVector{
private: typedef class QVectorTypedData < T > Data;
private: union /*anonymous*/{
struct QVectorData* p;
class QVectorTypedData < T >* d;
};
public: inline QVector();
public: inline QVector(class QVector const & v);
public: inline ~QVector();
public: inline bool operator !=(class QVector const & v) const
public: inline int size() const
public: inline bool isEmpty() const
public: inline int capacity() const
public: inline void squeeze();
public: inline void detach();
public: inline bool isDetached() const
public: inline void setSharable(bool sharable);
public: inline T* data();
public: inline T const * data() const
public: inline T const * constData() const
#ifdef QT_STRICT_ITERATORS
#else
public: typedef T* iterator;
public: typedef T const * const_iterator;
#endif
public: inline T* begin();
public: inline T const * begin() const
public: inline T const * constBegin() const
public: inline T* end();
public: inline T const * end() const
public: inline T const * constEnd() const
public: inline T* insert(T* before, T& x);
public: inline T* erase(T* pos);
public: inline int count() const
public: inline T& first();
public: inline T& first() const
public: inline T& last();
public: inline T& last() const
public: typedef T value_type;
public: typedef T* pointer;
public: typedef T const * const_pointer;
public: typedef T& reference;
public: typedef T& const_reference;
#ifndef QT_NO_STL
public: typedef ptrdiff_t difference_type;
#else
#endif
public: typedef T* Iterator;
public: typedef T const * ConstIterator;
public: typedef int size_type;
public: inline void push_back(T& t);
public: inline void push_front(T& t);
public: inline void pop_back();
public: inline void pop_front();
public: inline bool empty() const
public: inline T& front();
public: inline T& front() const
public: inline T& back();
public: inline T& back() const
public: inline class QVector operator +(class QVector const & l) const
public: inline class QVector& operator +=(T& t);
public: inline class QVector& operator <<(T& t);
public: inline class QVector& operator <<(class QVector const & l);
#ifndef QT_NO_STL
public: static inline class QVector fromStdVector(class std::vector < T, class std::allocator < _CharT > > const & vector);
public: inline class std::vector < T, class std::allocator < _CharT > > toStdVector() const
#endif
private: void detach_helper();
public: void reserve(int asize);
public: void resize(int asize);
public: inline void clear();
public: inline T const & at(int i) const
public: inline T const & operator [](int i) const
public: inline T& operator [](int i);
public: inline void insert(int i, T const & t);
public: inline void insert(int i, int n, T const & t);
public: inline void remove(int i, int n);
public: inline void remove(int i);
public: inline void prepend(T const & t);
public: inline void replace(int i, T const & t);
public: class QVector < T >& operator =(class QVector const & v);
private: inline struct QVectorData* malloc(int aalloc);
public: explicit QVector(int asize);
public: QVector(int asize, T const & t);
private: void free(class QVectorTypedData < T >* x);
private: void realloc(int asize, int aalloc);
public: T value(int i) const
public: T value(int i, T const & defaultValue) const
public: void append(T const & t);
public: typename QVector::iterator insert(T* before, int n, T const & t);
public: typename QVector::iterator erase(T* abegin, T* aend);
public: bool operator ==(class QVector const & v) const
public: class QVector < T >& fill(T const & from, int asize);
public: class QVector < T >& operator +=(class QVector const & l);
public: int indexOf(T const & t, int from = 0) const
public: int lastIndexOf(T const & t, int from) const
public: bool contains(T const & t) const
public: int count(T const & t) const
public: class QVector < T > mid(int pos, int length) const
public: class QList < T > toList() const
public: static class QVector < T > fromList(class QList < T > const & list);
};
template < typename T > class QVectorIterator{
private: class QVector < T > c;
public: inline QVectorIterator(class QVector < T > const & container);
private: typename QVector < T >::const_iterator i;
public: inline class QVectorIterator& operator =(class QVector < T > const & container);
public: inline void toFront();
private: typedef typename QVector < T >::const_iterator const_iterator;
public: inline void toBack();
public: inline bool hasNext() const
public: inline T const & next();
public: inline T const & peekNext() const
public: inline bool hasPrevious() const
public: inline T const & previous();
public: inline T const & peekPrevious() const
public: inline bool findNext(T const & t);
public: inline bool findPrevious(T const & t);
};
template < typename T > class QMutableVectorIterator{
private: QVector < T >* c;
private: inline bool item_exists() const
private: typename QVector < T >::iterator i;
public: inline QMutableVectorIterator(class QVector < T >& container);
private: typename QVector < T >::iterator n;
public: inline ~QMutableVectorIterator();
public: inline class QMutableVectorIterator& operator =(class QVector < T >& container);
private: typedef typename QVector < T >::iterator iterator;
public: inline void toFront();
private: typedef typename QVector < T >::const_iterator const_iterator;
public: inline void toBack();
public: inline bool hasNext() const
public: inline T& next();
public: inline T& peekNext() const
public: inline bool hasPrevious() const
public: inline T& previous();
public: inline T& peekPrevious() const
public: inline void remove();
public: inline void setValue(T const & t) const
public: inline T& value();
public: inline T const & value() const
public: inline void insert(T const & t);
public: inline bool findNext(T const & t);
public: inline bool findPrevious(T const & t);
};
#endif // QVECTOR_H