我需要解除分配,然后在向量迭代器中分配一个指针。是否可以为迭代器指定一个指针,如下所示?
VEC_SECS m_vec;
m_vec.push_back(new CSecs);
VEC_SECS::iterator iter = m_vec.begin();
for (iter ; iter != m_vec.end(); ++iter)
{
CSecs *p = *iter;
delete p;
p = new CSecs;
*iter = p;
}
答案 0 :(得分:2)
是的,你没有指定迭代器的指针,你只需要迭代迭代器指向的元素。我认为你的VEC_SECS
是一个指针向量,对吗?
答案 1 :(得分:0)
为什么这么复杂?我只想写
VEC_SECS m_vec;
m_vec.push_back(new CSecs);
for (VEC_SECS::iterator iter = m_vec.begin(); iter != m_vec.end(); ++iter)
{
CSecs& obj = **iter;
obj = CSecs();
// or just **iter = CSecs();
}