关于c++关联容器map使用标准库算法find的一点猜测

#include 
#include 
#include 
#include 
using namespace std;
int main()
{
map m{
    {"abc",1},{"abcd",2},{"abcde",3}};
auto pos = find(m.begin(),m.end(),pair{"abc",1});
cout << pos->first <second << endl;
        return 0;

}
~                                                                               
~      

程序中find最后一个参数,pair如果去掉const,就会报错。

map类型迭代器指向的类型是const key_type类型,值得类型没变。

所以,如果使用标准库算法find(不是关联容器本身版本),最后的第三个参数的值得类型也必须是map<const key_type,mapped_type>,const不能去掉。
差点就把我整蒙了,还以为不能用标准库的find了!!!

你可能感兴趣的:(c++)