【发布时间】:2016-03-18 02:44:36
【问题描述】:
我创建了一对和 long long int 的映射 -
map< pair< long long int, long long int >,long long int >;
和一个交互者 -
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.xctoolchain/usr/bin/../include/c++/v1/map:648:29: 注意:候选函数 (隐式复制赋值运算符)不可行:没有已知的转换 '__map_iterator<__tree_iterator>, __node_pointer, [...]>>' to 'const __map_iterator<__tree_iterator>, std::__1::__tree_node, long long>, void *> *, [...]>>' 用于第一个参数 类 _LIBCPP_TYPE_VIS_ONLY __map_iterator
【问题讨论】:
-
错误是什么?
-
错误:没有可行的重载 '=' it1=same.begin(); ~~~^~~~~~~~~~~~~~~~
-
另外,如果您没有输入代码,实际上是在您的帖子中复制并粘贴您正在编译的代码,这会有所帮助。原因是这一行:
map< pair< long long int, long long int >,long long int > > same有太多>(除非这是错误)。
标签: c++ dictionary stl std-pair