C++ 地图模板参数无效

C++ map template argument is invalid

我正在尝试创建一个地图,其值是我在另一个文件中定义的 class;即,FoodItemLookup。但是,C++ 给我错误:

template argument 1 is invalid

我觉得这很奇怪,因为我没有使用任何模板。

如果有人能向我解释我做错了什么,我将不胜感激。我不认为我可以 post 所有代码,但这里是有问题的片段:

制作地图的尝试:

std::map<string, FoodItemLookup> foodCatalogue;

FoodItemLookup.h 文件的简要说明:

#ifndef FOODITEMLOOKUP
#define FOODITEMLOOKUP

#include <string>

class FoodItemLookup
{
  private:
  ...

  public:

  //constructor
  FoodItemLookup(std::string upc, int shelfLife, std::string name);

  //copy constructor
  FoodItemLookup(const FoodItemLookup &other);

  //destructor
  ~FoodItemLookup();

  ...
);

#endif

您应该在第一个模板参数中的 string 中包含 std::

std::map<std::string, FoodItemLookup> foodCatalogue;

"I find this odd, because I'm not using any templates."

实际上 std::map 使用模板。这就是为什么在实例化 std::map.

时需要在 <> 之间传递 2 种类型(这里是 std::stringFoodItemLookup

More information on templates.