c++迭代器iterator的find函数的输入参数“&”代表什么含意?
map结构对应的find,按F12,弹出代码:
iterator find(const key_type& _Keyval)
{ // find an element in mutable sequence that matches _Keyval
iterator _Where = lower_bound(_Keyval);
return (_Where == end()
|| _DEBUG_LT_PRED(this->_Getcomp(),
_Keyval, this->_Key(_Where._Mynode()))
? end() : _Where);
}
请问输入参数里面的"&"是什么含意?
`const key_type& _Keyval`
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
&
代表引用传递,这样可以在函数内对传递进来的值进行修改,但在这个函数被设置成了const
,所以是不可修改的。在find
函数中使用主要是为了不会因为执行find
复制多一份值,如果key_type
是基本值类型还好,但如果key_type
是类,就可能会造成效率的下降或错误的查找结果。key_type&
:避免发生深拷贝,高效;const key_type& _Keyval
:const 属性使形参可接收临时变量(右值),接口使用限制更小。