35得票5回答
具有2个单元格的结构体与std::pair有何区别?

可能是重复问题: 使用具有两个字段的结构体和成对比较有什么区别? 大家好, 我有一个小问题,关于pairs和struct。使用std::pair是否比使用具有两个字段的结构体有任何优势? 我已经用了一段时间的pairs,但主要问题是可读性: 例如,如果您想表示一个二元组(int...

33得票6回答
有没有一种简单的方法来处理返回std::pair的函数?

C++11有一个函数std::minmax_element,它返回一对值。然而,处理和阅读这个函数相当困难,并且会产生一个额外的、后来无用的变量来污染作用域。auto lhsMinmax = std::minmax_element(lhs.begin(), lhs.end()); int &a...

33得票4回答
std::pair<int, int>与具有两个int的结构体相比,有何优势?

在ACM的一个示例中,我需要建立一个用于动态规划的大表格。我必须在每个单元格中存储两个整数,所以我决定使用std::pair&lt;int, int&gt;。然而,分配一个巨大的数组需要1.5秒钟:std::pair&lt;int, int&gt; table[1001][1001]; 后来,...

32得票2回答
优先队列内的配对

我正在尝试将一对值存储在优先队列中,并使用比较函数来比较每个对的第二个值。#include&lt;iostream&gt; #include&lt;queue&gt; #include&lt;utility&gt; using namespace std; class CompareDist...

32得票1回答
是否存在类似于std::tie的用于std::pair的东西?

例如使用元组:#include &lt;tuple&gt; // std::tuple, std::make_tuple, std::tie int num; char letter; std::tuple&lt;int,char&gt; num_letter; num_le...

31得票1回答
为什么在使用非可复制对象的单参数构造函数时,需要在map::emplace中使用piecewise_construct?

以下代码在gcc 4.8.2上无法编译。问题在于这段代码将尝试复制构造一个std::pair&lt;int, A&gt;,由于struct A缺少复制和移动构造函数,因此无法完成复制构造。是gcc的问题还是我漏了什么? #include &lt;map&gt; struct A { in...

28得票4回答
C++是否提供类似于pair<T1, T2>的“三元组”模板?

C++有没有类似于 std::pair 但带有3个元素的东西? 例如:#include &lt;triple.h&gt; triple&lt;int, int, int&gt; array[10]; array[1].first = 1; array[1].second = 2; arra...

28得票2回答
使用 std::tie 作为范围 for 循环的目标

我想做像下面这样的事情: //std::vector&lt;std::pair&lt;TypeA, TypeB&gt;&gt; someInitializingFunction(); { TypeA a; TypeB b; for (std::tie(a, b) : someI...

28得票3回答
使用pair<int, int>作为map的键

根据上一个问题,我正在尝试使用一对整数作为键来创建地图,即map&lt;pair&lt;int, int&gt;, int&gt;,我已经找到了有关如何插入的信息: #include &lt;iostream&gt; #include &lt;map&gt; using namespace...

26得票3回答
如何在C++中存储一对数字?

我正在学习C++,现在正在编写一个需要输出整数对列表的程序。 如何处理这个问题?因为学校的Linux计算机上没有可用的Boost库,所以我不认为可以使用boost::tuple。 有什么建议吗?