方法调用后新创建的向量reserve(x)可以capacity多x吗?如果是这样,为了获得所需的向量capacity,是否必须首先填充向量?
std::vector a;
a.reserve(x);
// ... insert x elements ...
a.shrink_to_fit();
方法调用后新创建的向量reserve(x)可以capacity多x吗?如果是这样,为了获得所需的向量capacity,是否必须首先填充向量?
std::vector a;
a.reserve(x);
// ... insert x elements ...
a.shrink_to_fit();
std::ifstream::read(char_type*, std::streamsize)std::streamsize接受使用有符号类型和std::fread(void*, std::size_t, std::size_t, std::FILE*)- 使用无符号类型读取的字节数std::size_t。同时,在许多示例中,无论是那里还是那里,对于字节数,他们都使用sizeof,结果为std::size_t. 大小std::vector<char>也是无符号的。那么为什么这个函数采用有符号类型呢?如何正确转换类型以毫无问题地填充字节向量?
在现代代码中应该使用哪种 I/O 方法?据我了解,标准库中有 3 种方式:C-like、C++-threads、C++-without threads。也许还有更多选择(包括在第三方库中)?如果在不同情况下有所不同,那么我希望每种非标准方法至少有一个示例。