如何从现有的 std::list 创建新的 std::list 并获取前 n-5 个元素?n 是现有列表(列表)的大小
问问题
125 次
1 回答
7
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
你。
于 2013-02-06T18:15:08.317 回答