【发布时间】:2016-08-19 08:36:23
【问题描述】:
这句话怎么了:
auto iter = first;
为什么iter++可以很好用,众所周知,first就是const&,
template<typename iteratorT, typename valueT>
iteratorT find(const iteratorT& first, const iteratorT& last,const valueT& value)
{
auto iter = first;
while(iter != last && *iter != value) iter++;
return iter;
}
为什么?
【问题讨论】:
-
类型推导:你得到了
first的非常量副本。 -
如果我不想使用自动,我该怎么办,谢谢
-
如果您希望它成为 const 引用,请改用
const iteratorT&或const auto &。 -
decltype(first) iter = first;,现在你得到了一个const&。 -
或
decltype(auto)。在那里,保存了一封信。
标签: c++ iterator constants auto