【发布时间】:2012-05-09 05:31:54
【问题描述】:
STL list::insert 的语法如下-
iterator
insert(iterator __position, const value_type& __x);
为什么要传递 iterator 而不是 对迭代器的引用?
【问题讨论】:
-
迭代器在 C++ 中通常按值传递,而不是按引用传递。不过,我不确定这个约定是从哪里产生的。
-
@KerrekSB 我问这个的原因是因为通常首选对 const 的引用以避免临时(和复制构造函数)。但是正如 templatetypedef 所提到的 - 这是按照惯例,Potatoswatter 在下面的 cmets 中解释说,编译器优化了调用,这可能代表了惯例。或者还有什么更多的吗?谢谢。
标签: c++ stl iterator pass-by-value