c++ - 如何将 std::pair 视为两个单独的变量?

标签 c++ c++-standard-library

标准库中有几个函数,如std::map::insert ,它返回一个 std::pair。有时,将其填充对应于该对的一半的两个不同变量会很方便。有没有简单的方法可以做到这一点?

std::map<int,int>::iterator it;
bool b;
magic(it, b) = mymap.insert(std::make_pair(42, 1));

我在这里寻找魔法

最佳答案

std::tie 来自 <tuple>标题就是你想要的。

std::tie(it, b) = mymap.insert(std::make_pair(42, 1));

magic”:)

注意:这是一个 C++11 特性。

关于c++ - 如何将 std::pair 视为两个单独的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520151/

相关文章:

二值图像的泛洪填充C++算法

c++ - unique_ptr 指向指针的删除器指针

c++ - 如何通过宏检查是否使用了 GNU libstdc++?

c++ - 通常,STL 容器的 getter 的返回类型应该是什么?

c++ - add_lvalue_reference/add_rvalue_reference 和 cv 限定类型

c++ - 获取 POSIX 纪元作为 system_clock::time_point

c++ - std::bit_cast 和 std::start_lifetime_as 之间有什么有用的区别吗?

c++ - std::minmax initializer_list<T> 参数

c# - 寻找 GSM 短信组件/ActiveX

c++ - 如何在不使用调试器的情况下跟踪 C++ 中的执行情况?