草庐IT

c++ - 逗号在数字中的含义

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++CommaOperator这可能是一个微不足道的问题,但我不知道答案。今天下午这一直困扰着我。我只是在写一个将RVB转换为YUV的函数。没什么特别的,但在我的数字中错误地使用了逗号(,)而不是点。它编译但结果不是我预期的,例如“-3713796”而不是0-255范围数字。(0,615*(double)61)-(0,51498*(double)61)-(0,10001*(double)61)那是什么意思呢?如果这不是编译错误,它可能对某些东西有用,但是什么?Ps:我在Qt中使用C++。

c++ - 为 vector<double> 类重载 *, +, -' 运算符

我正在编写一个Line类来制作数值方法,我想要这些运算符(*、+、-)使我的代码更具可读性和更容易理解。#includeusingnamespacestd;typedefvectorVector;classLine:publicVector{public:Line();~Line();Lineoperator+(Line);Lineoperator-(Line);Lineoperator*(double);};LineLine::operator*(doublealfa){Linetemp;intn=size();temp.resize(n);for(inti=0;iat(i)*alf

c++ - 无限循环计算立方根

我正在尝试制作一个通过牛顿法计算立方根的函数,但由于某种原因,我似乎在这里有一个无限循环?#include#includeusingnamespacestd;doubleCubicRoot(doublex,doublee);intmain(){cout=e);returnYnew;} 最佳答案 您还没有更新您的y迭代时变量。同时使用abs非常危险,因为它可能会在某些编译器上舍入为整数。编辑澄清我的意思:使用abs与可能导致不同编译的隐式类型转换问题(见下面的评论)。真正的c++风格将使用评论中建议的header(感谢您的回复)。您的

c++ - 如何检查字符串是否可以在 C++ 中转换为 double ?

我有一个字符串,它可以是数字(甚至是float或double类型,不仅是整数),也可以是非数字的单词。我想检查这个字符串是否可以转换为double,如果可以,那么我想进行转换。如果是非数字字符串,我想要不同的行为。我试过这个:doubletmp;stringstr;stringstreamss;ss>tmp;if(ss.fail()){//non-numericstring}else{//stringtodoubleconversionissuccessful}此代码的问题在于ss.fail()总是true,即使tmp包含正确的值。有一个函数叫做atof()它将字符串转换为double

C++ 在另一个函数中调用一个类函数

我试图通过将类成员函数作为参数来调用类内部的外部函数(将函数作为输入)。我的代码如下:usingnamespacestd;//Thisismyexternalfunctiondoubleintegrate(doublea,doubleb,intsteps,double(*func)(double)){//codeforintegrationusingfunctionpointer};ClassA{protected:vectorto_data,from_data;intdata_size;public:A();//constructordoublecalculate_parameter

c++ - 定义最大 double 时,“无法在初始化中将 'double (*)() noexcept' 转换为 'double'”

我读到使用最大double值的标准C++方法是std::numeric_limits::max.然后在我想要将我的double初始化为我使用的最大double的每个函数中:#include#defineMAX_DOUBLE(std::numeric_limits::max)使用gcc-pedantic-pedantic-errors-Wall-Wextra-Werror,我得到以下错误:Cannotconvert'double(*)()noexcept'to'double'ininitialization你能解释一下这个错误吗? 最佳答案

C++ : double iteration through map

我想遍历一个map,但内部循环只会遍历元素的上半部分。使用vector它看起来像这样:for(autoelement1=myVector.begin();element1!=myVector.end();++element1){for(autoelement2=element1+1;element2!=myVector.end();++element2){//mystuff}}但是对于mapelement1+1返回错误nooperatormatchesthisoperand..我相信这是因为元素在map中没有排序.那么我怎样才能正确地做到这一点呢?我目前正在使用这种需要在每个循环中进行

c++ - 使用 fstream 设置精度以输出文件 - double 格式

对于如何使用已打开的fstream将格式化的double输出到文本文件,我找不到答案。目前我的代码是这样做的:intwriteToFile(fstream&f,product_record&p){if(!f){cout其中p是名为product_record的结构,price、tax、sANDh和total都是doubles我试过f但这不起作用。我如何将此double格式设置为小数点后两位的精度。像这样"#.00".我如何使用专门的fstream来实现这一目标?此外,仅供引用,总体任务是简单地读取一个txt文件,将数据存储在一个结构中,将结构添加到一个vector中,然后从结构中读取以

c++ - float 和 double (C++) 的实际最小/最大值是多少

我已阅读关于使用“FLT_MIN”和“FLT_MAX”值作为float的建议。每当我这样做时,codeblocks都会告诉我它的max:3.40282e+038min:1.17549e-038不知道这意味着什么我试图获得真正的值(value)并得到max:47.2498237715min:-34.8045265148...但是这些并没有澄清事情。这是我的代码片段charc;//reserve:1byte,store1character(-128to127)inti;//reserve:4bytes,store-2147483648to2147483657shortints;//rese

c++ - 为什么双引用值在分配给 C++ 中的 float 变量时不会改变

我试图理解将float分配给const引用double的概念,并且如果float值更新,double的值不会改变。floatd=2.0;constdouble&f=d;d=3.0;std::cout输出:32这背后的原因是什么。然而,当我们将引用变量设置为与其他变量相同的类型时,不会出现此问题。 最佳答案 Howeverthisissueisnotseenwhenwesetthereferencevariableasthesametypeastheothervariable这就是重点;您不能直接将引用绑定(bind)到不同类型的对象