C++:逆序拷贝元素

问题

给定一个包含10个元素的vector,
将位置3到7之间的元素按逆序拷贝到一个list中.

C++.
image-2132

源代码

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;
 }

《C++:逆序拷贝元素》上有1条评论

  1. 我碰到这题一开始的思路是直接构造出需要的 list,但是不知道该怎么搞。看到你用 insert 做感觉也行的通,但是试了一下,不能通过编译。

    然后又找了会儿,这种直接构造的看上去漂亮多了 😀
    list lst(vec.crbegin()+3, vec.crend()-3);

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据