```cpp
namespace std
{
	template<typename Tp_>
		class vector
		{
			public:
				typedef long unsigned int size_type;
				typedef Tp_ value_type;
				typedef Tp_* value_pointer_type;
				typedef Tp_& reference;
				typedef const Tp_& const_reference;
			
			protected:
				size_type capacity_value=200;
				value_pointer_type base;
				size_type size_value;

			public:
				vector(const size_type& __s=0)
				{
					size_value=__s;
					base=new value_type[capacity_value];
				}

				vector(const size_type& __s,const value_type& __dv)
				{
					size_type=__s;
					base=new value_type[capacity_value];

					for(int i=0;i<capacity_value;++i)
						base[i]=__dv;
				}

				vector(const size_type& __s,const value_type& __dv,const size_type& default_capacity)
				{
					size_type=__s;
					capacity_value=default_capacity;
					base=new value_type[capacity_value];

					for(int i=0;i<capacity_value;++i)
						base[i]=__dv;
				}

				reference operator[](const size_type& pos) {return base[pos];}
				reference at(const size_type& pos) {return base[pos];}

				void __memboost(const size_type& newsize)
				{
					value_pointer_type pool=new value_type[newsize];
					capacity_value=newsize;

					for(int i=0;i<capacity_value;++i)
						pool[i]=base[i];

					delete []base;
					base=pool;
				}

				void resize(const size_type& newsize)
				{
					if(newsize<capacity_value)
						size_value=newsize;
					else
					{
						__memboost(capacity_value+200);
						size_value=newsize;
					}
				}

				void push_back(const value_type& v)
				{
					if(size>=capacity_value)//euiburuiasrhvuihruv
				}
		};
}