iterators would work well I think.
Code:
std::vector<std::string> myvector;
std::list<std::string> mylist;
std::vector<std::string>::iterator iter;
for ( iter = myvector.begin(); iter != myvector.end(); ++iter )
{
mylist.push_back((*iter));
myvector.erase(iter);
}
that will copy the entire vector, and erase each element as it goes. you could modify that to take only certain elements.
just put + however many elements you want to skip after the .begin()
Code:
iter = myvector.begin()+SkipAmount;
Hopefully that helped.
EDIT:
If your wanted to always only take so many elements, then maybe a reverse_iterator would work better.