我有以下代码
#include <map>
template <typename Value>
static void Get(std::map<int, Value> & map)
{
typename std::map<int, Value>::const_iterator it;
it _it = map.find(1);
}
void main()
{
std::map<int,std::string> _map;
_map.insert(std::pair<int,std::string>(1, "1"));
Get<std::string>(_map);
}
Run Code Online (Sandbox Code Playgroud)
我收到了该行的错误
it _it = map.find(1);
Run Code Online (Sandbox Code Playgroud)
为什么这样?
如果您打算定义it为类型,则需要typedef
typedef typename std::map<int, Value>::const_iterator it;
Run Code Online (Sandbox Code Playgroud)
如果你想定义it为变量:
typename std::map<int, Value>::const_iterator it;
it = map.find(1);
Run Code Online (Sandbox Code Playgroud)
或者只写:
auto it = map.find(1);
Run Code Online (Sandbox Code Playgroud)
另外,void main()应该是int main().
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |