草庐IT

max_items

全部标签

c++ - std::min/max 类型推导在 linux 和 windows 上不同

在下面的代码中,std::min/max的模板类型推导似乎很奇怪,我想知道为什么以及如何正确修复它。以下适用于WindowsVS2013,并在GCC-4.8上给出编译错误:(错误见下文)intminX=max(min(floor(v1[0]),min(floor(v2[0]),floor(v3[0]))),0.0f);这在GCC-4.8上编译但在VS2013上给出编译错误:(错误见下文)intminX=max(min(floor(v1[0]),min(floor(v2[0]),floor(v3[0]))),0.0);v[1-3]是cv::Vec3fv1,v2,v3;在OpenCV中,c

c++ - 为 numeric_limit<T>::max() 指定无限限制?

我有任意精度Integer类,这很像Java的BigInteger或OpenSSL的BIGNUM在运行中。我无法理解如何表达numeric_limit::max()的无限限制.StackOverflow有几个问题询问是否可以这样做(例如Isitoktospecializestd::numeric_limitsforuser-definednumber-likeclasses?),以及一些使用原语的示例的答案,但我没有看到使用任意精度整数类的示例。我还访问了std::numeric_limits引用页面,但我不清楚在这种情况下我应该做什么。在这一点上,我的结论是可以专攻numeric_l

c++ - 为什么 std::string::max_size 的值是 "strange"?

我在看std::string::max_size并注意到这个例子:#include#includeintmain(){std::stringstr("Teststring");std::cout输出:max_size:4294967291但是,我一直认为这个限制是由于无符号整数/size_t的最大值造成的-所以我有点希望它是2^32-1也就是4294967295。为什么此示例中的最大大小不使用这4个字节?我还尝试运行示例代码,在那台机器上它是2^62-这又让我感到困惑,为什么不是2^64-1代替?总的来说,我想知道,实现不会使用所有空间的原因是什么? 最佳答

c++ - 在代码中使用 -DBL_MAX 安全吗?

我想要极端的值(value)。#includeusingnamespacestd;#include#include#include#defineTHRESHOLD2*DBL_MIN#defineFEQ(x,y)(fabs((x)-(y))那么,在代码中使用-DBL_MAX安全吗?如果有人知道更好的方法,请在此处分享。 最佳答案 DBL_MAX是标准库的一部分。因此,它并不是特别不安全。但是,从不可靠的意义上说,比较非整数浮点值是否相等本质上是不安全的。这是因为浮点运算的执行精度可能高于您选择的类型,结果会来回转换,并不总是如您所想。

c++ - RAND_MAX 的值总是 (2^n)-1 吗?

我对C++很感兴趣,尽管我怀疑它只是导入了C标准定义。我相信标准所说的答案是否定的,但我对实际答案最感兴趣。如果RAND_MAX始终为(2^n)-1(其中n是某个自然数-实际上是随机数中随机二进制数字的数量),这会简化处理最近从MinGW移动代码时出现的问题GCC到LinuxGCC。RAND_MAX似乎更大(我没有检查,但可能等于INT_MAX或任何符号),所以一些旧的天真编写的RAND_MAX-isn't-big-enough-so-work-around-it代码适得其反。现在我需要决定我需要这个库的通用性,考虑到编写正确处理溢出可能性的代码的繁琐程度而不对例如。int的宽度。无论

c++ - Qt UI 测试 : How to simulate a click on a QMenuBar item using QTest?

我正在尝试模拟鼠标单击QMenuBar中的QMenu项,例如使用QTestLib框架单击“另存为”QAction。我正在WindowsXP32位和Qt5.0.2下尝试这个。有什么想法吗? 最佳答案 这个问题可能与问题所有者无关,但我想它可能对其他人有帮助。与QToolBar不同,QMenu没有方法widgetForAction。我为这种情况找到了一个简单的解决方法。尝试使用QTest::mouseClick弹出菜单,如果没有任何反应,请尝试使用QTest::keyClick(...,first_char_in_menu_tite,Q

C++: Scott Meyers "Effective STL": item 31: know your sorting options: 帮助理解

美好的一天!ScottMeyers在他的“EffectiveSTL”中写道第三种方法是使用有序的迭代器容器中的信息,以迭代方式将列表的元素拼接到您希望它们所在的位置。如您所见,有很多选择。(第31项,第二部分)有人可以这样解释吗?更多文字(理解上下文):算法sort、stable_sort、partial_sort和nth_element需要随机访问迭代器,因此它们只能应用于vector、字符串、双端队列和数组。对标准关联容器中的元素进行排序是没有意义的,因为此类容器使用它们的比较函数来始终保持排序。我们可能想使用sort、stable_sort、partial_sort或nth_el

c++ - 编译器无法推断出 std::max 的重载

用我的编译器typedefconstdouble&(*fT)(constdouble&,constdouble&);typedefstd::functionstd_func;fTf1=std::max;//(1)std_funcf2=static_cast(std::max);//(2)std_funcf3=f1;//(3)(1,2,3)工作但是autof4=std::max;//(4)std_funcf5=std::max;//(5)(4,5)不要。编译器提示它无法为案例5选择重载。这种行为正常吗?什么是最便携最正确的写法? 最佳答案

c++ - 为什么 int a; a = std::max(a, x) 不发出 "uninitialized"警告

考虑以下代码:#include#include#includeintmain(){std::vectorv{{1,2,3}};inta;std::cout随着现代编译器的发展,现在对愚蠢的程序员错误保持警惕,他们跟踪单元化变量。然而,这段C++代码让他们感到困惑。到目前为止,我得到以下结果:(1)(2)g++5.3.1clang++3.7✔SolarisStudio12.5✔如您所见,CLang和solstudio只能检测情况(1)并忽略情况(2),而g++会忽略两者。在情况(2)中是否存在检测它的并发症?为什么g++在这方面如此糟糕?我使用的编译器选项:$g++-5-std=c++1

c++ - max和fmax的区别(跨平台编译)

在Xcode中,这个编译很好:floatfalloff=fmin(1.0,fmax(0.0,distanceSqrd/cRadius));但是在VisualStudio2010中它会出错,我必须使用max而不是fmax。distanceSqrd和cRadius也是float。这是我的代码中唯一不能无缝交叉编译的部分...有什么想法吗? 最佳答案 函数std::fmax和std::fmin来自header(或fmax和fmin来自)是一个C++11功能以及VisualStudio2010尚不支持的许多其他新数学函数(也不支持2012)