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

时间:2013-12-14 16:03:24

标签: c++ std

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

struct MessageLetter{
  char letter;
  int count;
  MessageLetter(char letter, int freq)
  : letter(letter), count(freq)
  {}
};

现在我正在尝试创建一个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;
    }
  }

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

test.cpp:95:8: error: no template named 'map' in namespace 'std'; did you mean 'max'?
  std::map<std::string, MessageLetter> lList;

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

1 个答案:

答案 0 :(得分:45)

#include <map>

问题解决了。