如何从已有的std::list获取前n-5个元素来创建新的std::list?N为现有列表( list )的大小
发布于 2013-02-07 02:15:08
std::list<T> newlist(oldlist.begin(), std::prev(oldlist.end(), 5));其中T是旧列表的值类型。
std::prev是C++11中的新特性,但是如果您还没有它,您可以改用std::advance:
std::list<T>::const_iterator end = oldlist.end();
std::advance(end, -5);
std::list<T> newlist(oldlist.begin(), end);无论哪种方式,你都有责任确保oldlist.size() >= 5。std::prev和std::advance都不能为您做到这一点。
https://stackoverflow.com/questions/14735927
复制相似问题