草庐IT

double-elimination

全部标签

C++ 将静态二维 double 组转换为 double **

我的程序中有这样的矩阵:doublem[3][4]={{2,4,5,7},{4,5,1,12},{9,12,13,-4}};我想将其转换为double**类型。我已经尝试过简单的double**a=(double**)m;,但它不起作用(当我尝试读取任何值时,我得到“访问违规读取位置0x00000000。”,这意味着我正在尝试从NULL地址读取。我找到了几乎可行的解决方案:double*b=&m[0][0];double**c=&b;它在我读取字段c[0][any]时有效但是,当我尝试从字段c[1][0]中读取值时,会出现同样的NULL地址读取问题。将我的doublem[3][4]数组

c++ - 如何在 C 中将字节数组转换为 double?

我有一个包含8个字节的字节数组,我想将它们转换并用作double二进制float。有人可以告诉我如何转换吗? 最佳答案 试试这个:doublea;memcpy(&a,ptr,sizeof(double));其中ptr是指向您的字节数组的指针。如果您想避免复制,请使用union,例如union{doubled;charbytes[sizeof(double)];}u;//Storeyourdatainu.bytes//Usefloatingpointnumberfromu.d 关于c++-

c++ - Clang:模板推导失败 'double' 与 '<double>'

考虑以下代码,它使用带有可变参数的函数:#include//TypedeffunctiontypetemplateusingFunc=void(Output*...);//Functionrunnertemplatevoidrun_func(Func&func,Output*...output){for(inti=0;i用g++4.7.3编译它工作正常,运行产生1024.0正如预期的那样。使用icpc14.0.2编译会崩溃...templ.cc(21):internalerror:assertionfailed:lower_expr:badkind(shared/cfe/edgcpfe

c++ - 模板类中 float 和 double 文字的函数特化

我正在尝试找到一种解决方案,以便在模板类方法中使用常量数字文字。我正在制作一些与float或double类型一起使用的数学模板类。问题在于文字因数据类型而异(例如,“0.5f”表示float,“0.5”表示double)。到目前为止,我想出了两个解决方案。第一个的一些假设代码:templateclassSomeClass{public:TdoSomething(Tx);};templatefloatSomeClass::doSomething(floatx){floaty=0.5f;/**Docomputations...*/returnx;}templatedoubleSomeCla

c++ - g++ 在不使用 -Wconversion 的情况下将 double/float 转换为无符号整数时发出警告

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:g++-Wallnotwarningaboutdouble->intcast根据问题here,从double/float到无符号整数的直接转换是不可移植的。我发现我的代码中有一些情况会发生这种情况,如果发生这种情况,我想告诉g++警告我,但我找不到这样的选项。有谁知道是否可以选择这样做?注意:我确实看到了-Wconversion,但它也会警告我不关心的所有其他类型的转换(比如将int转换为unsignedint,根据标准这是可移植的)。编辑:这是我希望看到警告的代码示例:doubledblNumber=-23

c++ - 使用 memcpy 将 vector<double> 的内容复制到内存缓冲区

我有一个包装vector的类:templateclassPersistentVector{private:std::vectorvalues;public:std::vector&getValues()throw(){returnvalues;}....}实例是:PersistentVectormoments;我正在尝试将所有double复制到其他人分配的缓冲区中。这是我创建缓冲区的地方://invariant:numMoments=1double*data_x=newdouble[numMoments];这是我尝试将vector的内容复制到缓冲区中:doubletheMoment=m

c++ - 使用标量类型的 "const"的好处? (例如 "const double"或 "const int")

///////////////////////////////////////classA{...constdoublefunA(void){...}};Aa;doublex=a.funA();//althoughtheintentionisto//enforcethereturnvaluetobeconstandcannotbe//modified,ithaslittleeffectintherealworld.classA2{...doublefunB(void){...}};///////////////////////////////////////classA{voidset

c++ - 缩小从 double 到 float 的转换 : is overflow behaviour guaranteed?

如果我试试这个floatf=(float)numeric_limits::infinity();或者实际上,尝试将任何大于floatmax的值转换为float,我能保证最终得到无穷大吗?它适用于GCC,但它是标准吗? 最佳答案 floatf=(float)numeric_limits::infinity();这保证设置f如果您的编译平台提供用于浮点计算的IEEE754算法(通常会提供),则为无穷大。Orindeed,trytocastanythingbiggerthanfloatmaxdowntoafloat,amIguarante

c++ - 为什么 complex<double> * int 没有在 C++ 中定义?

C++程序#include#includeintmain(){std::complexz(0,2);intn=3;std::cout产生错误:‘z*n’中的‘operator*’不匹配。为什么?我正在使用g++4.4.1进行编译。也许编译器只是遵循C++标准,在这种情况下我的问题是:为什么标准不允许这样做? 最佳答案 这个有效:#include#includeintmain(){std::complexz(0,2);doublen=3.0;//Note,doublestd::cout因为复数由双数组成,所以它与双数相乘。查看声明:t

c++ - double to string 没有科学记数法或尾随零,有效

此例程被调用无数次以创建充满数字的大型csv文件。有更有效的方法吗?staticstd::stringdbl2str(doubled){std::stringstreamss;ss123.12,123.000=>123.)return(s[s.size()-1]=='.')?s.substr(0,s.size()-1):s;//removedanglingdecimal(123.=>123)} 最佳答案 开始之前,请检查此功能是否花费了大量时间。通过使用分析器或其他方式进行测量来做到这一点。知道你调用它无数次是很好的,但如果你的程序