【问题标题】:How to treated pair integer as separated variable?如何将对整数视为分隔变量?
【发布时间】:2018-10-03 17:10:09
【问题描述】:

有什么方法可以分隔成对的整数吗? 首先我以某种方式声明队列:

typedef pair<int,int>pr;
queue<pr>que;

我可以轻松地将单独的变量推入其中。例如

    que.push(make_pair(c,p));

现在当我从队列中获取价值时。我必须接受任何配对变量,例如 myp。

 pair<int , int> myp = que.front();

现在,有没有办法从 myp 中获取两个独立变量的值,或者直接从队列中的独立变量中获取值?

【问题讨论】:

  • 使用std::tie,或者,如果C++17可用,使用structured bindings
  • 您知道只需使用int a = myp.first, b = myp.second; 就可以从myp 中提取值吗?
  • @HolyBlackCat 这应该是我觉得的答案
  • @HolyBlackCat 我不知道。它正在工作,而且 tie

标签: c++ queue std-pair


【解决方案1】:

有没有办法从 myp 中获取两个独立变量的值

是的:

auto [c, p] = que.front();

这些称为结构化绑定,自 C++17 以来一直是该语言的一部分。

C++98有什么办法吗?

是的。如果你看一下std::pair的文档,你会发现它有两个成员,firstsecond

int a = myp.first;
int b = myp.second;

【讨论】:

  • C++11有什么办法吗?
猜你喜欢
  • 2019-10-10
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
相关资源
最近更新 更多