cpp create string 创建没有初始化

Cpp create string creation without initialization

我想将一个文件的内容读入一个字符串中。

string contents(size, '[=10=]'); -> size was determined above using the file.seekg and file.tellg.
file.read((char*) contents.data(), size);

现在,我知道字符串的内容将在file.read中被覆盖,所以不需要将字符串初始化为空字符。

有办法吗?

你可以这样做:

std::string contents(std::istreambuf_iterator<char>{file},
    std::istreambuf_iterator<char>{});

但它可能不会更快。无论哪种方式,与从驱动器读取相比,初始化都可能非常快。