hid*_*yat 17 c++ containers stl
如果我想将容量设置为std::vector我必须调用.reserve(...),是否有任何理由为什么stl中的容器的构造函数中没有容量参数std::string,std::vector?
Jam*_*lis 13
有一个明显的原因:这样的构造函数会是什么样子?
所有序列容器都有一个可以用单个整数参数调用的构造函数.该构造函数调整容器的大小以具有指定数量的元素.
是的,您可以添加第二个参数(例如bool reserve_instead_of_resize)以便能够将此构造函数用于初始调整大小和初始预留,但是我认为最终结果会令人困惑.
Vik*_*ehr 11
您可以简单地创建一个用于创建保留向量的函数:
// make_reserved_vector
template <typename... T>
std::vector<T...> make_reserved_vector(size_t n) {
std::vector<T...> vec;
vec.reserve(n);
return vec;
}
Run Code Online (Sandbox Code Playgroud)
并用作:
auto myvec = make_reserved_vector<int>(32768);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2935 次 |
| 最近记录: |