最初の n-5 要素を取る既存の std::list から新しい std::list を作成する方法は? 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 に答える