Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用自定义分配器初始化向量_C++_Stl_C++17 - Fatal编程技术网

C++ 使用自定义分配器初始化向量

C++ 使用自定义分配器初始化向量,c++,stl,c++17,C++,Stl,C++17,我试图用显式分配器初始化向量,但下面的代码似乎不起作用: vector<int> a1(allocator<int>()); cout << a1.size(); //Error C2228: left of '.size' must have class/struct/union 向量a1(分配器()); cout感谢所有给我建议的人,这被称为“最烦人的解析”,可以通过统一初始化修复为: vector<int> a1(allocator<

我试图用显式分配器初始化向量,但下面的代码似乎不起作用:

vector<int> a1(allocator<int>());
cout << a1.size();  //Error C2228: left of '.size' must have class/struct/union
向量a1(分配器());
cout感谢所有给我建议的人,这被称为“最烦人的解析”,可以通过统一初始化修复为:

vector<int> a1(allocator<int>{});
向量a1(分配器{});

所以a1现在是一个向量。否则,a1将被解释为一个函数,它接收类型为
std::allocator(*)(
的参数,并返回
vector

a1
是一个函数声明。你成了受害者。@HolyBlackCat非常感谢!实际上,我对这个术语还不熟悉。我来看看它是如何工作的。你试过向量a1(分配器{})?谷歌“最烦人的解析”。@AlessandroTeruzzi谢谢,这一个有效!
vector<int> a3(a2, allocator<int>());
cout << a3,size();  // OK
vector<int> a1(allocator<int>{});