You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取C++中自定义固定大小fixVec的设定最大容量?

实现固定最大容量的C++向量

如果你想要一个自带最大尺寸限制的向量,你给出的这个模板结构体实现思路是可行的——通过继承std::vector并重写push_back方法来做容量校验:

template <typename T, size_t siz> 
struct fixVec : public std::vector<T> { 
    void push_back(const T& d) { 
        if (std::vector<T>::size() >= siz) 
            throw std::bad_alloc(); 
        std::vector<T>::push_back(d); 
    } 
};

使用示例

你可以像这样实例化一个最大容量为1的fixVec,并结合其他类使用:

ClonableHeteroStore<ClonableTestClass, fixVec<ClonableTestClass*, 1>, MyException> t1;

测试验证

针对这个实例,第一个添加操作不会触发异常,这和你的测试预期一致:

EXPECT_NO_THROW(t1.add(new ClonableTestClass));

因为此时向量的当前尺寸是0,还没达到设定的最大容量1,所以push_back可以正常执行,不会抛出std::bad_alloc异常。

内容的提问来源于stack exchange,提问作者Malkalma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:26:27