c++迭代器iterator的find函数的输入参数“&”代表什么含意?

发布于 2022-09-12 23:31:52 字数 493 浏览 20 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

趁年轻赶紧闹 2022-09-19 23:31:52

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

做个ˇ局外人 2022-09-19 23:31:52
  1. key_type& :避免发生深拷贝,高效;
  2. const key_type& _Keyval :const 属性使形参可接收临时变量(右值),接口使用限制更小。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文