使用std::reverse来反转向量的前几个元素的顺序
Using std::reverse to reverse the order of the first few elements of a vector
如果我有
vector<int> vec { 1, 2, 3, 4}
如何使用
std::反向
把它变成
vec{2,1,3,4}
您可以使用带有迭代器的reverse
作为参数,如下所示:
vector<int> vec { 1, 2, 3, 4};
reverse(vec.begin(), vec.begin()+2);
您可以在此处查看
对于本质上简单得多的操作,不需要使用std::reverse
。如果您只想交换前两个元素,请使用:
std::swap (vec[0], vec[1]);
如果你想交换两个组中的元素(只在最后留下任何一个奇数),你可以使用这样的东西:
for (int i = 0, lim = vec.size() - vec.size() % 2; i < lim; i += 2)
std::swap (vec[i], vec[i+1]);
如果你想反转向量的一部分,它比两个元素更多,这就是我考虑使用std::reverse
的地方。您可以使用以下调用来反转向量vec
中包含{1, 2, 3, 4, 5}
的部分:
std::reverse (vec.begin(), vec.end() ); // -> {5, 4, 3, 2, 1}
std::reverse (vec.begin(), vec.begin() + 3); // -> {3, 2, 1, 4, 5}
std::reverse (vec.begin() + 1, vec.begin() + 4); // -> {1, 4, 3, 2, 5}
相关文章:
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何返回或护理项目清单基于几个类别
- 我们如何在文本文件中找到C++中的几个单词?
- 关于 std::bitset 构造函数的几个问题?
- 几个 Nt 函数在 Windows 7 x32 上返回STATUS_WAIT_0
- std::stoi 只转换前几个字符
- C++ 通过接口使用从其他几个类继承的类
- 在矢量中使用擦除时双重释放或损坏(快速顶部).如何擦除一个矢量的几个项目知道它们的索引?
- 如何遍历几个每小时一次的根(.root)文件,并将它们组合成更大的每日数据.root文件?
- 我有几个关于参考变量的问题
- 如何将几个变量复制到其他变量
- 如何在新设计中迁移需要几个额外参数的函数
- 如何按顺序迭代几个容器
- 为什么sleep in函数忽略了程序中的几个顺序指令
- 使用std::reverse来反转向量的前几个元素的顺序
- 如何强制按顺序调用几个函数
- 在几个顺序数组元素中输入相同的值
- 如何在C++中按深度顺序销毁几个类
- 关于评价顺序和比较的几个问题