【发布时间】:2025-12-18 08:10:02
【问题描述】:
我的问题与this one 几乎相同,但那里的解决方案并没有解决我的错误。
在main.h 我有:
#include <map>
#include <string>
std::map<std::string, int64_t> receive_times;
在main.cpp:
std::map<std::string, int64_t>::const_iterator iter;
std::map<std::string, int64_t>::const_iterator eiter = receive_times.end();
for (iter = receive_times.begin(); iter < eiter; ++iter)
printf("%s: %ld\n", iter->first.c_str(), iter->second);
但是,当我尝试编译时,出现以下错误:
error: invalid operands to binary expression ('std::map<std::string, int64_t>::const_iterator' (aka '_Rb_tree_const_iterator<value_type>') and 'std::map<std::string, int64_t>::const_iterator'
(aka '_Rb_tree_const_iterator<value_type>'))
for (iter = receive_times.begin(); iter < eiter; ++iter)
~~~~ ^ ~~~~~
我在顶部链接的问题的解决方案是因为缺少#include <string>,但显然我已经包含了。有什么提示吗?
【问题讨论】:
-
你不应该在头文件中定义变量...
标签: c++ iterator stdstring stdmap