为什么以下代码无法编译,
#include <vector>
using std::vector;
vector<int> v; // Error: too few template arguments, expected 2
但使用map
(和pair
,set
,...)代替vector
的相同代码有效吗?
#include <map>
using std::map;
map<int, int> m; // OK
此代码也正常:
#include <vector>
using namespace std;
vector<int> v; // OK
我知道std::vector
的构造函数有两个参数(类型和分配器),但为什么vector
行为与其他容器有很大不同?
答案 0 :(得分:2)
尚未修复CLion错误:https://youtrack.jetbrains.com/issue/CPP-5758#u=1454575544687。
作为一种解决方法,您可以尝试使用libstdc ++而不是libc ++,请参阅https://youtrack.jetbrains.com/issue/CPP-5758#comment=27-2389700。