我有一个模板类 Position,它有一个指向 Entry 对象的指针。如果我在堆栈上创建位置,然后将它们插入到 std::vector 中,它会产生错误吗?
这是我的职位模板:
template <typename K, typename V>
class Position
{
private:
Entry<K, V> *ptr;
int index;
public:
Position(Entry<K,V> &e, int index){
*ptr = e;
this->index = index;
}
我在向量中这样插入:
Entry<int, int> e(20, 20);
//Creates Position with reference to Entry and Index as value.
storage.push_back(Position<K,V> p(e, 10));
我不完全确定内存如何用于简单的插入。如果我在本地函数中插入更多,并且 Position 是在本地创建的。
那么,我可以这样做吗,我应该使用 new 以便它保留在堆上吗?我做错了吗? 提前感谢您的帮助。