草庐IT

UINT_MIN

全部标签

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++ - 标准是否保证 uint8_t、int8_t 和 char 都是唯一类型?

似乎以下内容可以保证通过(已询问here):#includestatic_assert(!std::is_same_v);static_assert(!std::is_same_v);引用cppreference[char]hasthesamerepresentationandalignmentaseithersignedcharorunsignedchar,butisalwaysadistincttype是否也保证int8_t和uint8_t根据显式签名类型定义未定义就char而言,因此也形成一组具有char?的3种不同类型#include#includestatic_assert(

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

c++ - 与 min_element 和 max_element 一起使用 minmax_element 是否有任何效率优势?

std::minmax_element:返回一个对,该对由指向最小元素的迭代器作为第一个元素和指向最大元素的迭代器作为第二个元素组成。std::min_element:返回指向[first,last)范围内最小元素的迭代器。std::max_element:返回指向[first,last)范围内最大元素的迭代器。std::minmax_element是否使用完整列表的排序来实现此目的?从std::minmax_element处理返回对的开销是否足够? 最佳答案 您不必担心std::minmax_element进行任何排序。它以遍历的

C++ uniform_int_distribution 总是在第一次调用时返回 min()

在标准库的至少一个实现中,第一次调用std::uniform_int_distribution不返回随机值,而是返回分布的最小值。也就是说,给定代码:default_random_engineengine(any_seed());uniform_int_distributiondistribution(smaller,larger);autox=distribution(engine);assert(x==smaller);...x实际上会是smaller对于any_seed()的任何值,smaller,或larger.要在家一起玩,您可以尝试codesample在gcc4.8.1中演

c++ - 将结构转换为 uint8_t 的 constexpr 数组

我需要从constexpr结构中创建字节的constexpr数组。#includetemplateconstexprstd::arrayo2ba(constTo){return{};}structA{inta;};intmain(){constexprAx{1};constexprautoy=o2ba(x);//y=={0x01,0x00,0x00,0x00}forlittleendianreturn0;}我试图从union中提取它:templateunionU{To;std::arrayd;};templateconstexprstd::arrayo2ba(constTo){retu

c++ - clang 的 uint24_t 是如何工作的?我可以在 clang/LLVM 之外使用它吗?

作为GCC用户,我刚刚注意到clang支持uint24_t类型(它在他们的stdint.h中)。这是如何运作的?我的意思是,它是纯粹在内部支持,作为一种语言扩展,还是像C++类那样实现,具有超过3个字节或16位值和另一个8位值的抽象?并且-怎么可能通过GCC来“猛拉”这样的实现并自己使用它?注意:我希望在现代C++中有一个类似uint24_t的类(或更一般的uint_t);我的替代方案是自己动手。你可以s/uint/int/g;如果你喜欢这个问题。 最佳答案 这不是可移植的或标准的。它仅适用于AVR(具有24位地址)和GCChasi

c++ - OpenCV - 如何从 uint8_t 指针创建 Mat

我有以下C++代码:voidfoo(constuint8_t*data,intheight,intwidth){//needtocreateacv::Matfrom*data,whichisapointertograyscaleimagedata//doesn'tworkcorrectly(compiles,butarrayaccessonthematleadstoasegmentationfault)autoimg=cv::Mat(height,width,CV_8UC1,&data);//howcanIfixthelineabovetocreateapropercv::Mat?}/

c++ - 如何将数字数据读取为 uint8_t

这个问题在这里已经有了答案:istringstreamdecimalintegerinputto8-bittype(5个答案)关闭8年前。我在istream中有一些人类可读的数字数据。取值范围为0-255,我想将它们存储在uint8_t中。不幸的是,如果我尝试类似的东西uint8_ta,b;stringstreamdata("12467");data>>a>>b;然后我以a=='1'和b=='2'结束。我知道这在很多情况下都是理想的行为,但我想以a==124和b==67结束。我目前的解决方法是将数据流式传输到int中,然后将它们复制到uint8_t中。uint8_ta,b;inta_,

c++ - libc++ 中的 std::min 没有悬挂引用

众所周知(或者应该是)绑定(bind)std::min的结果到const引用是一个非常糟糕的主意,每当std::min的参数之一时是右值,因为const引用绑定(bind)不会通过函数返回传播。所以下面的代码#include#includeintmain(){intn=42;constint&r=std::min(n-1,n+1);//risdanglingafterthislinestd::cout应该产生未定义的行为,因为r悬空。事实上,在使用-Wall-O3使用gcc5.2进行编译时编译器吐了warning:isuseduninitializedinthisfunction[-W