6.3w+
社区成员
for ( ; rit != iv.rend(); rit++)
{
if(3==*rit)
{
iv.insert(rit.base(),8);
rit++;
}
}
int main()
{
int a[5]={1,2,3,4,5};
std::list<int> iv(a,a+5);
std::copy(iv.begin(),iv.end(),std::ostream_iterator<int>(cout," "));
cout<<'\n';
std::list<int>::reverse_iterator rit = iv.rbegin();
for ( ; rit != iv.rend(); ++rit)
{
if(3==*rit)
{
iv.insert(rit.base(),8);
break;
}
}
std::copy(iv.begin(),iv.end(),std::ostream_iterator<int>(cout," "));
cout<<'\n';
return 0;
}
同意楼上的。
注意返回的是指向该元素的iterator.
iterator insert ( iterator position, const T& x );
list的erase还有两种形式:
void insert ( iterator position, size_type n, const T& x );
template <class InputIterator>
void insert ( iterator position, InputIterator first, InputIterator last );