使用std :: vector不起作用

时间:2018-03-11 16:56:06

标签: c++ stl containers clion

为什么以下代码无法编译,

#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的错误。 enter image description here

1 个答案:

答案 0 :(得分:2)

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

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