I'd like to override the [] operator for an object which holds a std::vector object (that is, have the subscripting act as though it were directly applied to the member vector).
This is what I have so far
using namespace std;
#include <string>
#include <iostream>
#include <vector>
class VectorWrapper
{
public:
    VectorWrapper(int N): _N(N), _vec(N) {}
    ~VectorWrapper() {delete &_vec;}
    string operator[](int index) const
    {
        return _vec[index];
    }
    string& operator[](int index)
    {
        return _vec[index];
    }
private:
    int _N;
    vector<string> _vec;
};
int main()
{
    VectorWrapper vo(5);
    vo[0] = "str0";
    std::cout << vo[0];
}
Which upon running produces the following error
Process finished with exit code 11
What am I doing wrong?
 
    