使用 std::vector 无效

Using std::vector does not work

为什么下面的代码不能编译,

#include <vector>
using std::vector;
vector<int> v; // Error: too few template arguments, expected 2

但是使用 map(和 pairset、...)而不是 vector 的相同代码有效吗?

#include <map>
using std::map;
map<int, int> m; // OK

而且这段代码也能正常工作:

#include <vector>
using namespace std;
vector<int> v; // OK

我知道 std::vector 的构造函数有两个参数(类型和分配器),但为什么 vector 的行为与其他容器如此不同?

UPD:对不起,这是我的错误。实际上代码确实可以编译,但 CLion 将其标记为错误。所以这是 CLion 的错误。

尚未修复 CLion 错误:https://youtrack.jetbrains.com/issue/CPP-5758#u=1454575544687

作为解决方法,您可以尝试使用 libstdc++ 而不是 libc++,请参阅 https://youtrack.jetbrains.com/issue/CPP-5758#comment=27-2389700