我提供了两种向我的集合添加元素的方法,一个是每个 const 引用,一个是每个指针。
void push_back(const value_type *val) {
element *elem = new element(val);
//...
}
void push_back(const value_type &val) {
push_back(&val);
}
该类element
将值作为指针保存。
class element {
private:
const value_type *value;
public:
element(const value_type *value):
value(value) {
}
~element() {
delete value;
}
显然,当弹出元素或删除集合时,如果元素作为指针添加,则必须释放内存。但是,当元素不是手动分配并通过引用传递时,这会产生错误。
如果元素是在 push_back 时间动态分配的,除了额外存储之外,还有其他选择可以解决这个问题吗?