C++ STL的map的构造确有四个参数的,它的构造定义为map (InputIterator, InputIterator, const Compare& = Compare(), const Allocator& = Allocator ());其中前两个为模板类型,第3个为比较函数(查找key用),第4个为存储结构,一般不用从定义可以看出,只要两个参数就可以了,第3、4参数有缺省值的你用map<int,int> a;这样定义一个map肯定没有问题你的问题,应该是其它的语法问题(如没有变量等)引起的