如何为映射的交互器分配起始地址<对<长整,长整>,长整整>

How to assign starting address to an interator of a map<pair<long long int,long long int>,long long int >

本文关键字:长整 lt gt 地址 映射 交互 分配      更新时间:2023-10-16

我创建了一对和long-long-int-的映射

map< pair< long long int, long long int >,long long int >; 

和一个interator-

map< pair< long long int, long long int >, long long int >::iterator it1;

当我执行it1=same.begin()时,编译器抛出了一个错误,为什么会这样?

生成错误:

no viable overloaded '=' 
it1=same12.begin();
~~~^~~~~~~~~~~~~~~

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/bin/../include/c++/v1/map:648:29:注:候选函数(隐式复制赋值运算符(不可行:没有已知的从'__map_iterator&lt__tree_iterator&lt__value_type,[…]>,__node_pointer,[…]]>'to'常量__map_iterator&lt__tree_iterator&lt__value_type,[…]>,std::__1::__tree_node,long-long>,void*>*,[…]>'用于第一个参数class _LIBCPP_TYPE_VIS_ONLY __map_iterator

错误告诉您:

没有已知的从'__map_iterator<...>''const __map_iterator<_...>' 的转换

注意const

这里,看起来same12const map(或者const map&,或者它可能在const方法中使用,在这种情况下应用常量正确性(。这意味着.begin()将返回const_iterator,而不是iterator

您需要将it1的类型更改为const_iterator,而不是iterator。完整类型应为:map<pair<long long int, long long int>, long long int>::const_iterator

或者只使用auto it1 = same12.begin();