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`
&
代表引用传递,这样可以在函数内对传递进来的值进行修改,但在这个函数被设置成了const
,所以是不可修改的。在find
函数中使用主要是为了不会因为执行find
复制多一份值,如果key_type
是基本值类型还好,但如果key_type
是类,就可能会造成效率的下降或错误的查找结果。