vector 初始化方式疑问
HamsterCoderSim opened this issue · 2 comments
HamsterCoderSim commented
通过 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());
}
frederick-vs-ja commented
通过 initializer_list 初始化的时候,为什么不把参数分为
const std::initializer_list<value_type> &ilist
和std::initializer_list<value_type> &&ilist
两种拷贝构造参数呢?
这没有意义。 initializer_list
是一个引用性质的东西,它只是引用而非复制底层数组。对这种东西最好是传值。 C++ 标准库中还有类似的 basic_string_view
及 span
。
HamsterCoderSim commented
@frederick-vs-ja 好的,明白了,多谢