MyTinySTL icon indicating copy to clipboard operation
MyTinySTL copied to clipboard

vector 初始化方式疑问

Open HamsterCoderSim opened this issue 2 years ago • 2 comments

通过 initializer_list 初始化的时候,为什么不把参数分为 const std::initializer_list<value_type> &iliststd::initializer_list<value_type> &&ilist 两种拷贝构造参数呢?

而是使用下面的这种方式,这是有什么顾虑吗

 vector(std::initializer_list<value_type> ilist)
  {
    range_init(ilist.begin(), ilist.end());
  }

HamsterCoderSim avatar Jun 11 '22 14:06 HamsterCoderSim

通过 initializer_list 初始化的时候,为什么不把参数分为 const std::initializer_list<value_type> &iliststd::initializer_list<value_type> &&ilist 两种拷贝构造参数呢?

这没有意义。 initializer_list 是一个引用性质的东西,它只是引用而非复制底层数组。对这种东西最好是传值。 C++ 标准库中还有类似的 basic_string_viewspan

frederick-vs-ja avatar Jun 24 '22 02:06 frederick-vs-ja

@frederick-vs-ja 好的,明白了,多谢

HamsterCoderSim avatar Jun 28 '22 03:06 HamsterCoderSim