问题
给定一个包含10个元素的vector,
将位置3到7之间的元素按逆序拷贝到一个list中.
源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /************************************************************************* > File Name: test.10.37.cpp > Author: puruidong > Mail: 1@w1520.com > Created Time: 2014年06月23日 ************************************************************************/ #include<iostream> #include<algorithm> #include<vector> #include<iterator> #include<list> using namespace std; /***************************** 给定一个包含10个元素的vector,将位置3到7之间的元素按逆序拷贝到一个list中. **********************************/ int main() { vector<int> vec={0,1,2,3,4,5,6,7,8,9}; list<int> lst; vector<int>::reverse_iterator it=vec.rbegin(); lst.insert(lst.begin(),(it+3),(it+7)); for(auto &s:lst) { cout << s << endl; } return 0; } |
我碰到这题一开始的思路是直接构造出需要的 list,但是不知道该怎么搞。看到你用 insert 做感觉也行的通,但是试了一下,不能通过编译。
然后又找了会儿,这种直接构造的看上去漂亮多了 😀
list lst(vec.crbegin()+3, vec.crend()-3);