STL映射错误:命名空间'std'中没有名为'map'的模板; 你是说'max'吗?

Jac*_*kie 19 c++ std

我正在开发一个跟踪字符串中字母频率的应用程序.为此,我创建了以下Struct

struct MessageLetter{
  char letter;
  int count;
  MessageLetter(char letter, int freq)
  : letter(letter), count(freq)
  {}
};
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试创建一个如下的stl :: map ...

  std::map<std::string, MessageLetter> lList;
  for(int i = 0; i < output.length(); i++){
    std::cout << i << output[i] << std::endl;
    if(lList.find(output[i]) == lList.end()){
      std::cout << "Letter not found" << std::endl;
      MessageLetter m = {output[i],1};
      lList[output[i]] = m;
    }
    else{
      std::cout << "Letter found" << std::endl;
    }
  }
Run Code Online (Sandbox Code Playgroud)

当我尝试编译这个时,我得到以下内容......

test.cpp:95:8: error: no template named 'map' in namespace 'std'; did you mean 'max'?
  std::map<std::string, MessageLetter> lList;
Run Code Online (Sandbox Code Playgroud)

我是c ++的新手,所以任何指导都会很棒.如果这是重复,我将很乐意删除.如果需要,将提供任何其他信息(C++版本等).这最终将成为原生的Android应用程序.

小智 55

#include <map>
Run Code Online (Sandbox Code Playgroud)

问题解决了.