我有以下代码(只是在这里输入,可能有拼写错误或其他东西):
typedef boost::ptr_vector<SomeClass> tvec;
tvec v;
// ... fill v ...
tvec vsnap;
for(tvec::iterator it = v.begin(); it != v.end(); ++it)
{
if((*v).anyCondition)
vsnap.push_back( it ); // (*it) or &(*it) doesn't work
}
我现在的问题是我不能以任何方式 push_back 迭代器,我只是没有将指针从迭代器中取出。
有没有我没有看到的简单方法,或者 boosts ptr_vector 是这种情况下的错误选择?
提前致谢。