c++ - 通过将迭代器保存到其初始状态的最后一个元素来反转更新的向量
问题描述
我想像这样反转以下向量的更新部分:
// initialize
vector<int> a = {1, 2, 3};
将迭代器保存到最后一个元素
vector<int>::iterator e = a.rbegin();
更新
a.push_back(4);
a.push_back(5);
a.push_back(6);
现在
a = {1, 2, 3, 4, 5, 6}
我想把它改造成
a = {1, 2, 3, 6, 5, 4}
下面的代码打印出3 6
这是我所期望的
cout << *e << ' ' << *a.rbegin() << endl;
但下面的代码打印4 3 2 1 0 3
reverse(a.rbegin(), e + 1);
for (auto it : a) cout << it << ' ';
为什么?!
编译标志:-g
,-std=c++17
解决方案
推荐阅读
- apache-nifi - 使用 NiFi 进行两步 API 调用
- javascript - 使用 create-react-app 我得到 EEXIST: file already exists
- python - 网络检查一直失败
- css - 网格视图产品内容的累积布局移位
- jenkins - Jenkins 部署管道组织
- javascript - 如何设置 API 以在正确的播放器下显示详细信息
- php - 我们如何获取移动应用程序的所有moodle api url?
- python - 加速图像标注
- ios - 你可以让两个不同视图的两个展开转场返回到同一个视图控制器 Swift 5 吗?
- javascript - 如何去除 HTML 页面的背景色?