草庐IT

min_doc_count

全部标签

c++ - 使用 const 键类型引用调用 std::set of pointers 的 count 方法

我有一个类structS{boolfoo(constAType&v)const{returnvalues.count(&v);//compileerrorduetotheconstnessofv}private:std::setvalues;};这是一个简化版本。在实际代码中,foo做了一些复杂的事情。代码产生错误invalidconversionfrom‘constAType*’to‘std::set::key_type{akaAType*}’我认为foo应该采用'constAType&v'因为它不会改变v。成员变量“values”的类型不能为std::set,因为结构S的某些方法调

c++ - valarray 上 STL 算法 "count"的返回类型是什么

我正在使用VisualStudio2010Pro在Windows764bit上机器,我想使用count(来自header)在valarray上:intmain(){valarrayv(false,10);for(inti(0);i上面程序的输出是正确的:4但是我想将值分配给变量并使用int导致编译器警告精度损失。自valarray没有迭代器,我不知道如何使用iterartor::difference_type.这有可能吗? 最佳答案 Num的正确类型会是:typenameiterator_traits::difference_typ

c++ - std::min 的实现

这个问题在这里已经有了答案:Correctimplementationofmin(2个答案)关闭9年前。std::min在cppreference上的实现在originalstl看起来像这样:return(b但我认为这稍微更具可读性:return(a这让我想知道:这两种实现是否等价?按原样实现是否有特定原因?

c++ - 无法将 INT_MIN 的值分配给 long long

signedlonglongvalue=-2147483648;cout输出2147483648(没有减号),为什么? 最佳答案 signedlonglongvalue=-2147483648;2147483648无法用32位有符号整数表示,因此将其转换为无符号整数,然后应用一元减号(不会更改任何内容),然后将其分配给签名长长。使用-2147483648LL 关于c++-无法将INT_MIN的值分配给longlong,我们在StackOverflow上找到一个类似的问题:

c++ - 为什么可以打印小于 DBL_MIN 的双数?

我将0.4543543234343654632452452525254e-323分配给double变量a并打印它,尽管它小于DBL_MIN,它仍然可以分配和打印。DBL_MAX:1.79769e+308FLT_MAX:3.40282e+38DBL_MIN:2.22507e-308FLT_MIN:1.17549e-38a:4.94066e-324为什么会这样? 最佳答案 其实DBL_MIN不是最小值而是最小值normalizedvalue这是可表示的。不同之处在于前导数字对于规范化值是1,而对于非规范化数字是0。注意denormaln

c++ - 这个 bitset::count() 的实现是如何工作的?

下面是std::bitset::count与MSVC2010的实现:size_tcount()const{//countnumberofsetbitsstaticchar_Bitsperhex[]="\0\1\1\2\1\2\2\3\1\2\2\3\2\3\3\4";size_t_Val=0;for(int_Wpos=_Words;0>=4)_Val+=_Bitsperhex[_Wordval&0xF];return(_Val);}有人可以向我解释这是如何工作的吗?_Bitsperhex有什么诀窍? 最佳答案 _Bitsperhex

c++ - 为什么没有给 std::forward_list 一个 count() 成员函数?

我明白为什么std::forward_listdoesnothaveasize()memberfunction,因为O(1)版本会搞乱某些splice()的复杂性过载,并且由于O(N)version将与标准库的所有其他容器不一致。这也是事实std::list和std::forward_list已经有几个其他成员函数与中的表亲具有相同的语义标准库的一角(merge()、reverse()、remove()、remove_if()、unique()、sort())。那么为什么不是count()O(N)的成员函数提供给std::forward_list的复杂性具有返回std::distanc

c++ - 不同类型的 std::chrono::duration 的 std::min

考虑以下代码://durationsarefromstd::chronoautoa=get_duration_1();//milliseconds,willvaryinfutureversionsautob=get_duration_2();//seconds,willvaryinfutureversionsautoc=std::min(a,b);它无法编译,因为编译器无法实例化std::min的正确版本因为参数类型不同。当然,现在可以使用std::min明确指定类型.在此代码的future版本中,类型会有所不同。在不知道确切持续时间类型的情况下执行此操作的通用方法是什么?

c++ - 我可以在不更改 use_count 的情况下将 shared_ptr<T> & 转换为 shared_ptr<T const> & 吗?

我有一个使用boost::shared_ptr的程序s,特别是依赖于use_count的准确性执行优化。例如,假设一个加法运算有两个参数指针lhs和rhs。假设他们都有类型shared_ptr.当需要执行加法时,我会检查use_count,并且如果我发现其中一个参数的引用计数恰好为1,那么我将重新使用它来就地执行操作。如果两个参数都不能重用,我必须分配一个新的数据缓冲区并执行异地操作。我正在处理庞大的数据结构,因此就地优化非常有用。因此,我永远无法复制shared_ptr没有理由,即每个函数都采用shared_ptrs通过引用或const引用以避免扭曲use_count.我的问题是:我

c# - 为什么 float.min 在 C++ 和 C# 之间不同?

在C#中,我有(使用VisualStudio监视工具查看):float.MinValue=-3.40282347E+38在C++中:std::numeric_limits::min()=1.17549435e-038为什么值不一样?以及如何在C++中获取-3.40282347E+38(C#值)? 最佳答案 您正在寻找numeric_limits::lowest.如那里所述:ReturnsthelowestfinitevaluerepresentablebythenumerictypeT,thatis,afinitevaluexsuc