- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
std::minmax C++11 中引入的函数应该分别返回一对给定值中的最小值和最大值。
在这个例子中:
int a = 6, b = 5;
auto p = std::minmax(a, b);
std::cout << "p.first = " << p.first << std::endl;
std::cout << "p.second = " << p.second << std::endl;
这就像广告和打印一样工作
p.first = 5
p.second = 6
现在我想有效地修改a
和b
来强制b低于a,就像运行这段代码一样:
if (b > a)
std::swap(a, b);
所以我写了这个:
int a = 5, b = 6;
std::tie(b, a) = std::minmax(a, b);
std::cout << "a = " << a << std::endl;
std::cout << "b = " << b << std::endl;
但是,这会打印:
a = 5
b = 5
改用 initializer_list 重载,如下所示:
std::tie(b, a) = std::minmax({a, b});
导致打印预期结果:
a = 6
b = 5
编译器是 GCC 4.7.1(也在 Linux 和 Windows 上使用 GCC 4.8.1 和 Mingw-w64 进行了测试)。我在 http://ideone.com/fA0qw5 创建了一个 SSCCE .
为什么在使用 std::tie
时双参数重载没有做它应该做的事情?
最佳答案
问题在于 std::minmax
为 2 参数版本返回 references。这样,一旦 std::tie(b, a)
中的 b
被分配,更改就会反射(reflect)在 b
部分返回的 std::pair
的值,给它 5
的值 - 这又被分配给 std 中的
,产生 a
: :tie(b, a)(5, 5)
作为结果。
关于c++ - std::minmax() 和 std::tie 的重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912199/
我这里有 2 个关于网格的问题。首先是单元格中的填充。二是grid-gap固定值。 我正在尝试创建 4 列网格。第一个和第二个单元格(蓝绿色、红色)在调整大小时应该消失,并且没有空间容纳它们。这应该用
在这篇文章的底部( How the minmax() Function Works )它说 minmax(auto, auto) : If used as a maximum, the auto va
我有这段 CSS 来设置我的网格的列: grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); 这很好用,但我想扩展它,这样我就可以
我尝试用Java编写用于四连体游戏的MinMax程序,但该程序也应适用于其他游戏。但是,我遇到了一个问题,几天之内无法解决。节点的值设置不正确。我正在共享我的代码,该代码负责生成树。 也许您会注意到我
我对某些特征应用了线性回归,以通过 10 倍交叉验证来预测目标。 MinMax 比例应用于特征和目标。 然后对特征进行标准化。 当我运行模型时,r2 等于 0.65,MSE 为 0.02。 但是当我使
我尝试为 grid-template-rows 设置 minmax(),有趣的是,结果是 grid-rows 扩展到 的最大值>minmax() 而不是最小值。 我们如何才能使网格行保持最小声明大小,
我尝试为 grid-template-rows 设置 minmax(),有趣的是,结果是 grid-rows 扩展到 的最大值>minmax() 而不是最小值。 我们如何才能使网格行保持最小声明大小,
如果我减小容器的宽度,为什么单元格占用的宽度小于 200 像素? 我认为 minmax 必须保持宽度不小于第一个参数 (200px)。 如果删除.a、.k 和.g 的样式,一切正常。 https://
我有一个 vector QPointF我需要找到最小值和最大值 y值,因为我需要知道 vector 中数据的幅度是多少。 我使用 QPointF,但为了添加每个新元素,我总结了 x vector 中其
我尝试为 grid-template-rows 设置 minmax(),有趣的是,结果是 grid-rows 扩展到 的最大值>minmax() 而不是最小值。 我们如何才能使网格行保持最小声明大小,
我正在研究国际象棋引擎,现在正在尝试实现 Minimax 算法。目前我已经整理了一个 mimimax 代码,但它并没有真正正常工作。鉴于我不是一个好的棋手,我在几分钟内就击败了引擎。 我希望有人好心地
这是我的 minmax 算法的代码: private static void minmax(){ Move move = max(4, true, null); //System.ou
我正在构建一个井字游戏(Free Code Camp 上的一个项目),并实现了一个 minmax 算法来决定计算机玩家接下来应该选择哪个方 block 。 在我测试过的所有情况下,它都按预期工作,但以
我想在对称网格中显示可变数量的相同高度和大小的图像。使用 CSS 网格和 auto-fill和 minmax我希望能够为我的轨迹定义最小和最大像素宽度,这样我就可以防止图像被缩放得太小,同时在用户视口
我遇到了与 CSS 网格布局相关的 minmax() 函数的一些问题。 这是我的代码: * { box-sizing: border-box; } .grid { display: grid;
我正在自学 minimax 算法,我只是有几个问题希望有人能回答。 首先在第 05 行 - := 是什么意思? 同样在第 08/14 行,我注意到方法 max 或 min 被调用时带有两个参数,这个方
有了 C++ 的所有新特性(我认为 C++11 就足够了),是什么阻止了 std::minmax 函数返回一对引用。 这样一来,如果一个人提供了两个可修改的引用,它们就可以被修改。这是在开 jar 头
我正在尝试为九人莫里斯创建“AI”,但我在 minMax 算法上遇到了困难。总结一下,我花了10多个小时试图找到问题,但没有成功。 (调试这个递归很糟糕,或者我做得很糟糕,或者两者兼而有之) 自从我开
您好,我正在尝试创建具有该行为的响应列。列的宽度可以在 335 像素或 540 像素之间。 但是当我使用 grid-template-columns: repeat(auto-fit, minmax(
我一直在尝试创建一个 3 列布局,其中包含宽度为 1、2 或 3 列的卡片。为此,我使用了 CSS Grid grid-template-columns: repeat(auto-fit, minma
我是一名优秀的程序员,十分优秀!