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

问题描述 投票:19回答:3

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

std::pair

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

c++ c++-standard-library
3个回答
28
投票

magic标头中的[std::tie是您想要的。

std::tie

<tuple>”:)

注意:这是C ++ 11功能。


0
投票

在C ++ 03中,您必须这样写:

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

0
投票

在C ++ 17中,您可以使用结构化绑定。因此,您不必先声明变量:

magic
© www.soinside.com 2019 - 2024. All rights reserved.