分配指向迭代器的指针

时间:2012-01-13 10:40:33

标签: c++ stl vector

我需要解除分配,然后在向量迭代器中分配一个指针。是否可以为迭代器指定一个指针,如下所示?

   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;
   }

2 个答案:

答案 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();
}