title: Default constructor in cpp shallow or deep copy?
body: <p>Does the default copy-constructor do a shallow or a deep copy in C++?</p>
  
  <p>I am really confused with default copy constructor in cpp, as it does shallow copy or deep copy,  as when I did <code>v2=v1;</code> suppose <code>v1={1,2,3}</code>, now if I have done <code>v2[0]=1;</code> It does not get reflected but I heard it does shallow copy, can anybody please explain?</p>