C++ 向量分配器错误

Posted

技术标签:

【中文标题】C++ 向量分配器错误【英文标题】:C++ vector allocator error 【发布时间】:2016-09-30 22:17:20 【问题描述】:

我正在尝试用 gcc 编译

#include <string>
#include <vector>

std::vector < std::string, std::vector < std::vector < int > > > plain;

int main()
return 0;

但出现错误: 错误:'class std::vector" > >' 没有名为'deallocate'的成员

【问题讨论】:

也许您想使用std::mapstd::unordered_map??。请参阅如何mcve 和一些强烈推荐C++ texts。此外,C++ tag wiki 也有一些很好的指导可以让你跑步。 在这个 sn-p 中你想做什么真的不是很清楚。正如其他人已经指出的那样, std::vector 的第二个参数必须是分配器,而不是另一个 std::vector 类/实例 【参考方案1】:

您的plainstd::vector&lt;std::string, NotReallyAnAllocator&gt;,其中NotReallyAnAllocatorstd::vector &lt; std::vector &lt; int &gt; &gt;

std::vector(任何东西)不是分配器,编译器明确抱怨它没有实现必要的分配器接口。

我不确定您想要实现什么,但如果您需要键值容器,请查看 std::unordered_mapstd::map

【讨论】:

以上是关于C++ 向量分配器错误的主要内容,如果未能解决你的问题,请参考以下文章

C++ 向量上的分配错误

为啥 C++ 标准向量在分配或调整大小时会出现段错误? [关闭]

如何在 C++ 中随机分配给向量?

向量分配上的c ++分段错误

C ++中动态分配的向量中的分段错误

c++中向量的限制