C++代码中map的find函数问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++代码中map的find函数问题相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <string.h>
#include <map>
struct test
std::map<std::string, int> mapx;
test()
for (int i=0; i<10; i++)
mapx.insert(std::make_pair("xxx", i));


;
int main()
std::map<int, std::string>::iterator itr;
test x;
itr=x.mapx.find(std::string("xxx"));
std::cout<<itr->second<<std::endl;
return 0;

为什么会报错? 报错信息如下
test.cpp:15: error: no match for 'operator=' in 'itr = ((std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<const std::string, int> > >*)(&x))->std::map<_Key, _Tp, _Compare, _Alloc>::find [with _Key = std::string, _Tp = int, _Compare = std::less<std::string>, _Alloc = std::allocator<std::pair<const std::string, int> >](((const std::string&)((const std::string*)(&string(((const char*)"xxx"), ((const std::allocator<char>&)((const std::allocator<char>*)(&allocator<char>()))))))))'
/usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_tree.h:152: note: candidates are: std::_Rb_tree_iterator<std::pair<const int, std::string> >& std::_Rb_tree_iterator<std::pair<const int, std::string> >::operator=(const std::_Rb_tree_iterator<std::pair<const int, std::string> >&)

参考技术A std::map<std::string, int> mapx; std::map<int, std::string>::iterator itr;
明显不一致嘛本回答被提问者和网友采纳

c++ std::map find 用法

用find函数来定位数据出现位置,它返回的一个迭代器,

  • 当数据出现时,它返回数据所在位置的迭代器,
  • 如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器

#include <map>

#include <string>

#include <iostream>

Using namespace std;

Int main()

{

       Map<int, string> mapStudent;

       mapStudent.insert(pair<int, string>(1, “student_one”));

       mapStudent.insert(pair<int, string>(2, “student_two”));

       mapStudent.insert(pair<int, string>(3, “student_three”));

       map<int, string>::iterator iter;

       iter = mapStudent.find(1);

        if(iter != mapStudent.end())

        {

               Cout<<”Find, the value is ”<<iter->second<<endl;

        }

        Else

        {

               Cout<<”Do not Find”<<endl;

        }

}

https://blog.csdn.net/qq_33573235/article/details/80277424

以上是关于C++代码中map的find函数问题的主要内容,如果未能解决你的问题,请参考以下文章

find() 或 insert() 上的 C++ unordered_map SIGSEGV

第十三篇:multimap容器和multiset容器中的find操作

C++ find()

C++ std::string::find()函数(在字符串中查找内容)

在scala中使用find函数

find 和 map的应用