gpt4 book ai didi

c++ - 'auto' 关键字如何知道何时使用 const_iterator 匹配函数重载?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:54 26 4
gpt4 key购买 nike

我了解this question的内容但是当使用函数重载时,事情是如何工作的呢?

例如在 std::map 中定义了以下方法:

      iterator find (const key_type& k);
const_iterator find (const key_type& k) const;

如何使用 auto 关键字来选择一个或另一个?以下内容对我来说似乎不正确:

auto i = mymap.find(key);        //calls the non-const method?
const auto i = mymap.find(key); //calls the const method?

最佳答案

std::map<int, int> mutable_map;
const std::map<int, int> const_map;

mutable_map.find(1); // returns iterator
const_map.find(1); // returns const_iterator

您不希望从常量 map 返回常规迭代器,因为那样会破坏常量性。因此,让 find 成员函数与常量 map 一起工作的唯一方法是让 const 重载返回一个 const_iterator.

关于c++ - 'auto' 关键字如何知道何时使用 const_iterator 匹配函数重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21727929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com