Container class defined in namespace
CS52 that has similar behavior to std::vector. The Container will continue to be an integer type and have
all the functionality from A04 plus a default constructor, an overloaded constructor, a copy constructor, and
overloaded operators (e.g. index-of [], assignment = and stream insertion <<). The Container Interface class Container { public: Container(); //default constructor Container(int size, int initial value); //overloaded constructor Container { const Containerk); //copy constructor //Destructor Container (); //Returns a reference to the element at location i in an Container. inte at (int i) const;// throws an std::string exception //Returns the allocated storage for an Container. int capacity () const; //Erases the elements of an Container but does not change capacity. void clear(); //Returns pointer to the first element in an Container. int data() const; //If Container is espty return true, else false. bool empty() const; //Deletes the element at the end of an Container. void pop_back (): //Add an element to the end of the Container. void push_back(int element); //Returns a reference to the first element in an Container. int& front () const; //throws an std::out of range exception //Returns a reference to the last element in an Container. int& back () const //throws an std::out of range //Returns the number of elements in the Container. int size () const; // Search for a key in Container // return index of key or -1 if not found int find(int key); //Overloaded operators int& operator] (int i >://array syntax ContainerĂ  operator=(const Containert ); // copy assignment //Overloaded stream insertion operator friend std::ostream& operator<<(std::ostreank, Containerk); private: = 0; int size int _capacity int data 0; = nullptr: 1 nanespace CS52{ 4 7 8 56 }://Container 58 //namespace'