Language: C++

#include <iostream>
using namespace std;
//using namespace ttkkggww;
//namespace ttkkggww
//{
	template<typename TYPE>
	class vector;
//}





//namespace ttkkggww
//{
	template <typename TYPE>
	class vector
	{
		private:
		//配列の先頭のポインタ
		TYPE *array;
		//確保しているメモリサイズ
		int capacity;
		//使っている配列の大きさ
		int use_capacity;
		//use_capacityがcapacityに到達したら二倍にメモリを拡張
		//要素数が増える時に使う
		void mayextend();

		public:	
		TYPE operator [](int index) const;
		TYPE& operator [](int index);
		TYPE front ()const;
		TYPE& front();
		TYPE back()const;
		TYPE& back();

		//末尾に値を追加するO(1)
		void push_back(TYPE val);
		//末尾の値を削除するO(1)
	 	void pop_back();
		//指定した場所の値を追加する。O(size())
		void insert(TYPE val,int index);
		//指定した場所の値を削除する。O(size())
		void erase(int index);
		//配列の長さを返すO(1)
		int size();
		//最初のポインタを返す。O(1)
		TYPE* pbegin();
		//最後の値が入っている次のポインタを返す。O(1)
		TYPE* pend();
		//コンストラクタ
		vector();
		//コンストラクタO(logsize)
		vector(int insize);
		//デストラクタO(1)?
		~vector();
	};

	

	template <typename TYPE>
	void vector<TYPE>::mayextend()
	{
		if(capacity==use_capacity)
		{
			TYPE *copy = new TYPE[use_capacity-1];
			for(int i=0;i<use_capacity-1;i++)
			{
				copy[i]=array[i];
			}
			capacity=capacity<<1;
			delete[] array;
			array = new TYPE[capacity];
			for(int i=0;i<use_capacity-1;++i)
			{
				array[i]=copy[i];
			}
			delete[] copy;
		}
	}

	template <typename TYPE>
	TYPE vector<TYPE>::operator [](int index) const
	{
		return array[index];
	}

	template <typename TYPE>
	TYPE& vector<TYPE>::operator [](int index)
	{
		return array[index];
	}

	template <typename TYPE>
	TYPE vector<TYPE>::front()const
	{
		return array[0];
	}

	template <typename TYPE>
	TYPE& vector<TYPE>::front()
	{
		return array[0];
	}

	template <typename TYPE>
	TYPE vector<TYPE>::back()const
	{
		return array[use_capacity-1];
	}

	template <typename TYPE>
	TYPE& vector<TYPE>::back()
	{
		return array[use_capacity-1];
	}

	template <typename TYPE>
	void vector<TYPE>::push_back(TYPE val)
	{
		use_capacity++;
		mayextend();
		array[use_capacity-1]=val;
	}

	template <typename TYPE>
	void vector<TYPE>::pop_back()
	{
		use_capacity--;
	}

	template <typename TYPE>
	void vector<TYPE>::insert(TYPE val,int index)
	{
		use_capacity++;
		mayextend();
		//一つ後ろにずらす
		for(int i=use_capacity-1;i>index;--i)
		{
			array[i]=array[i-1];
		}
		array[index]=val;
	}

	template <typename TYPE>
	void vector<TYPE>::erase(int index)
	{
		use_capacity--;
		for(int i=index;i<use_capacity;++i)
		{
			array[i]=array[i+1];
		}
	}

	template <typename TYPE>
	int vector<TYPE>::size()
	{
		return use_capacity;
	}

	template <typename TYPE>
	TYPE* vector<TYPE>::pbegin()
	{
		return array;
	}

	template <typename TYPE>
	TYPE* vector<TYPE>::pend()
	{
		return array+use_capacity+1;
	}

	template <typename TYPE>
	vector<TYPE>::vector()
	{
		capacity=1;
		use_capacity=0;
		array = new TYPE[capacity];

	}

	template <typename TYPE>
	vector<TYPE>::vector(int insize)
	{
		capacity=1;
		use_capacity=insize;
		while(capacity<insize)
		{
			capacity=capacity<<1;
		}
		array = new TYPE[capacity];
		for(int i = 0;i < insize;++i)
		array[i]=0;
	}

	template <typename TYPE>
	vector<TYPE>::~vector()
	{
		delete[] array;
	}
	
//}
int main()
{
	int n;cin>>n
	vector<int> a;
	for(int i=0;i<n;i++)
	{
		int foo;cin>>foo;
		a.push_back(foo);
	}
	cout<<0<<endl;
	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:206:21: error: expected ';' before 'vector'
  206 |         int n;cin>>n
      |                     ^
      |                     ;
  207 |         vector<int> a;
      |         ~~~~~~       
a.cc:211:17: error: 'a' was not declared in this scope
  211 |                 a.push_back(foo);
      |                 ^