MyTinySTL
MyTinySTL copied to clipboard
vector 初始化方式疑问
通过 initializer_list 初始化的时候,为什么不把参数分为 const std::initializer_list<value_type> &ilist 和 std::initializer_list<value_type> &&ilist 两种拷贝构造参数呢?
而是使用下面的这种方式,这是有什么顾虑吗
vector(std::initializer_list<value_type> ilist)
{
range_init(ilist.begin(), ilist.end());
}
通过 initializer_list 初始化的时候,为什么不把参数分为
const std::initializer_list<value_type> &ilist和std::initializer_list<value_type> &&ilist两种拷贝构造参数呢?
这没有意义。 initializer_list 是一个引用性质的东西,它只是引用而非复制底层数组。对这种东西最好是传值。 C++ 标准库中还有类似的 basic_string_view 及 span 。
@frederick-vs-ja 好的,明白了,多谢