What is the correct (and efficient) way of attaching the contents of C buffer (char *) to the end of std::vector<char>?