/* * Acess2 C++ Library * - By John Hodge (thePowersGang) * * string (header) * - C++'s String type */ #ifndef _LIBCXX_VECTOR_ #define _LIBCXX_VECTOR_ #include namespace std { namespace _bits { template class vector_iterator; } template > class vector { public: typedef T value_type; typedef Alloc allocator_type; typedef typename allocator_type::reference reference; typedef typename allocator_type::const_reference const_reference; typedef typename allocator_type::pointer pointer; typedef typename allocator_type::const_pointer const_pointer; typedef ::std::_bits::vector_iterator iterator; typedef ::std::_bits::vector_iterator const_iterator; typedef int difference_type; typedef size_t size_type; private: allocator_type m_alloc; size_type m_size; size_type m_capacity; value_type* m_data; public: vector(const allocator_type& alloc = allocator_type()): m_alloc(alloc), m_size(0), m_capacity(0), m_data(0) { } vector(size_type n, const value_type& val = value_type(), const allocator_type& alloc = allocator_type()): vector(alloc) { } vector(const vector& x): vector(x.m_alloc) { *this = x; } ~vector() { for( size_type i = 0; i < m_size; i ++ ) { m_alloc.destroy( &m_data[i] ); } } }; }; // namespace std #endif // vim: ft=cpp