std::对的翻转顺序
Flip order of std::pair
如何翻转std::pair
的顺序?是否有内置命令,或者我需要创建一个新的对。
目前,我正在通过创建一对新鞋来做到这一点。
std::pair el_ids(0,1);
el_ids = std::make_pair(el_ids.second, el_ids.first);
只要这两种类型的对是相同的,你就可以交换它们(就像@273k在评论中指出的那样(,例如:
导螺杆示例
std::pair p = {1, 2};
std::swap(p.first, p.second);
如果类型不同,你必须为它编写一个小的实用程序函数,因为没有内置的方法可以做到这一点,例如:
导螺杆示例
template<class T>
constexpr auto pair_swap(T&& pair) {
return std::make_pair(
std::forward<T>(pair).second,
std::forward<T>(pair).first
);
}
// Usage Example:
std::pair p = {std::string{"A"}, 12};
auto p2 = pair_swap(std::move(p));
您也可以直接交换的内容
std::pair el_ids(0,1);
std::swap(el_ids.first,el_ids.second);
您还可以使用统一初始化:
int main() {
std::pair el_ids(0,1);
el_ids = {el_ids.second, el_ids.first};
}
运行示例:https://godbolt.org/z/6vjf58co8
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 函数调用中参数的顺序重要吗
- 为什么不;名字在地图上是按顺序排列的吗
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 数到第n个楼梯的路(顺序无关紧要)
- 优先顺序:智能指针和类析构函数
- 在循环中按顺序遍历成员变量
- 独立读取-修改-写入顺序
- QML按钮点击功能执行顺序
- C++中数据类型修饰符的顺序
- 当比特(而不是字节)的顺序至关重要时的持久性
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 通过选项卡的文本设置QTabWidget顺序
- c++11评估顺序(未定义的行为)
- 如何在C++中递归地按相反顺序打印集合
- 给定顺序中的事件处理
- 具有包含其他对象的类的对象创建顺序
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 遍历顺序由 std::文件系统directory_iterator给出
- 检查 2 棵树是否具有相同的顺序