我在用 Linux 编译时遇到以下错误。
file.cxx:283:9: error: reference to ‘multimap’ is ambiguous
file.cxx:273:47: error: candidates are: std::multimap, std::basic_string > multimap
->段示例代码是
static std::multimap<std::string,std::string> multimap; //line no. 273
//
void foo()
{
if (multimap.size() == 0)
{
multimap.insert( std::pair< std::string, std::string >( "A" , "B" ) );
}
}
提前致谢
文件中可能有using namespace std;
。这意味着你的编译器已经知道"multimap",你试图再次定义它,在这种情况下,编译器不知道你指的是哪一个。
std 中有一个成员function
,您将其插入到命名空间中。避免使用using namespace std;
您可以通过以下方式导入所需的内容:
using std::multimap;
using std::string;