作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
要反转整个 vector
,存在 std::reverse
。但我想将一个 vector “划分”为两部分(恰好在中间)并将两者反转,将它们放回一起并再次反转整个 vector
。例如我们有:
0 1 2 3 4 5 6 7
将它分成两部分并反转:
0 1 2 3
-> 3 2 1 0
和 4 5 6 7
-> 7 6 5 4
,将反转的部分放在一起 3 2 1 0 7 6 5 4
并再次反转:4 5 6 7 0 1 2 3
。
我尝试使用 reverse_copy
但这并不成功。这是我的代码片段:
std::vector<int>::iterator mid = nr.begin() + nr.size() / 2;
std::vector<int>::iterator midLast = nr.size() / 2 + nr.end();
vector<int> temp1, temp2;
std::reverse_copy(nr.begin(),mid, std::begin(temp1));
std::reverse_copy(midLast, nr.end(), std::begin(temp2));
std::reverse(temp1.begin(), temp2.end());
我该如何实现我的方法?谢谢!
最佳答案
std::reverse(nr.begin(), nr.begin() + nr.size() / 2 );
std::reverse(nr.begin() + nr.size() / 2 + ((nr.size() % 2) != 0 ? 1 : 0), nr.end());
std::reverse(nr.begin(), nr.end());
for (auto& it : nr)
{
std::cout << it << " ";
}
0、1、2、3、4、5、6、7、8
的输出
5 6 7 8 4 0 1 2 3
0、1、2、3、4、5、6、7
的输出
4 5 6 7 0 1 2 3
关于c++ - 中途反转/交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45631205/
我有一个 SKSpriteNode (monsterNode) 的子类。它使用矢量自动在屏幕上运行以跟随玩家。我目前正在使用以下操作使其运行: SKAction *actionMove = [SKAc
我是一名优秀的程序员,十分优秀!