Improved Copy Constructor and Assignment Operator to use std::copy instead of a loop