C++ 限制c+中向量的增长+;
是否可以限制C++ 限制c+中向量的增长+;,c++,vector,C++,Vector,是否可以限制向量。max_size()以限制向量的增长 如果没有,是否具有监视向量.capacity()的功能,以确保它不会超过确定的数量,这是一个可行的替代品?实际上不是。但是您可以定义自己的vector子类(或者创建自己的全新vector实现),如果您真的愿意,这将允许强制执行此要求 差不多。您可以编写一个自定义分配器,并在std::vector(vector的第二个模板参数)中使用它。分配器需要满足以下条件。然而,正确地做到这一点并不简单。你的vector不会忽略push_back在达到最
向量。max_size()
以限制向量的增长
如果没有,是否具有监视向量.capacity()的功能,以确保它不会超过确定的数量,这是一个可行的替代品?实际上不是。但是您可以定义自己的vector子类(或者创建自己的全新vector实现),如果您真的愿意,这将允许强制执行此要求 差不多。您可以编写一个自定义分配器,并在
std::vector
(vector的第二个模板参数)中使用它。分配器需要满足以下条件。然而,正确地做到这一点并不简单。你的vector
不会忽略push_back
在达到最大大小后,它会抛出。继承std::vector
是一个糟糕的建议。不确定为什么会如此糟糕,但他可以完全从头开始实现它。这是一个糟糕的主意,因为std::vector
不是设计用来继承的max_size
不是虚拟的,析构函数也不是虚拟的。通过std::vector
接口进行的任何访问都会产生意外的结果。您可以编写一个满足vector
要求的新容器,并使用std::vector
在内部实现。在一次调用推回或插入或分配或操作员=
并超出预期最大容量?截断扔?