草庐IT

pair_of_ints

全部标签

c++ - 如何将数字 QString 转换为 int 数组?

我有一个QString,例如包含一系列数字QStringpath="111003320012345549394";我想遍历可变长度的字符串for(inti=0;i并且能够将每个数字作为int单独访问。不过我没能做到。问题:如何将数字的QString转换为int数组?我知道我可以使用path.toInt()将QString转换为int,但这对我没有帮助。首先尝试将其转换为char时出现错误:cannotconvert'constQChartochar'。for(inti=0;imovePlayer(direction);} 最佳答案

c++ - 未解析的外部符号 "private: static int Math::result"

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个答案)关闭8年前。这是我的类定义:#includeusingnamespacestd;classMath{private:staticintresult;public:staticintadd(inta,intb){result=a+b;returnresult;};};这是主要的:#include#include"Amin.cpp"usingnamespacestd;intmain(){Math::add(2

C++:int x[+30] 是有效的声明吗?

这几天一直在研究数组。我以这种方式遇到了一个数组的声明和它的元素的初始化:intx[+30];x[+1]=0;这让我有点困惑。我有一个想法,当我们写的时候:x[n]=0;那么它的意思是:*(x+n)=0;然后写x[+1]将意味着*(x++1)这似乎是无效的。请纠正我在理解这个概念时所犯的错误。 最佳答案 x[n]表示*((x)+(n))(注意黑色)和x[+1]表示*((x)+(+1))。这是有效的。N33375.2.1订阅TheexpressionE1[E2]isidentical(bydefinition)to*((E1)+(E2

c++ - GCC 编译错误 : declaration of ‘strlen’ must be available

我的问题是,当我想制作一个下载的库时,我从GCC得到了一些奇怪的编译错误。编译器要求更正的代码似乎是正确的。报错都是这样的:Catalogue.h:96:error:therearenoargumentsto‘strlen’thatdependonatemplateparameter,soadeclarationof‘strlen’mustbeavailable这是第96行附近的代码:GaCatalogueEntry(constchar*name,T*data){if(name){_nameLength=(int)strlen(name);//LINE96//copyname_name

c++ - union 成员可能没有构造函数,但是 `std::pair` 可以吗?

union成员可能没有析构函数或构造函数。所以我不能模板化以下类Foo靠我自己MyClass如果MyClass有一个构造函数:templatestructFoo{Tval;Foo(Tval_):val(val_){}size_thash()const{union{Tf;size_ts;}u={val};returnu.s;}};structMyClass{boola;doubleb;MyClass(boola_,doubleb_):a(a_),b(b_){}};如果我这样做,我会得到这个错误:member'MyClassFoo::hash()const[withT=MyClass]::

C++ 继承 : scoping and visibility of members

你能解释一下为什么这是不允许的吗,#includeclassB{private:inta;public:inta;};intmain(){return0;}这是什么时候?#includeclassA{public:inta;};classB:publicA{private:inta;};intmain(){return0;}在这两种情况下,我们在classB中都有一个名为a的公共(public)变量和一个私有(private)变量。现在编辑! 最佳答案 Inboththecases,wehaveonepublicandonepriv

c++ - 指向 int 的指针。 C++

我需要将函数指针传递给int。现在,如果我想通过5,我会这样做:int*i=NULL;intb=5;i=&b;有没有更好的方法可以写得更短一些?我想将iint中的字节传递给此函数:voidWrite2Asm(void*pxAddress,BYTE*MyBytes,intsize) 最佳答案 您可以将&b传递给函数;不需要中间指针变量。 关于c++-指向int的指针。C++,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - 如何将指针转换为 int

我试图将地址的值存储在非指针int变量中,当我尝试转换它时,我得到编译错误“从‘int*’到‘int’的无效转换”这是我的代码'正在使用:#include#include#includeusingnamespacestd;vectortest;intmain(){int*ip;intpointervalue=50;intthatvalue=1;ip=&pointervalue;thatvalue=ip;cout 最佳答案 int可能不够大,无法存储指针。你应该使用intptr_t。这是一个整数类型,它足够大以容纳任何指针。intpt

c++ - 将 float 转换为 int,有和没有转换

这两个是等价的吗?floatf=3.14;inti;i=f;//3和floatf=3.14;inti;i=(int)f;//3 最佳答案 编译器处理这两种情况的方式没有区别。生成的机器代码将是相同的。但是,第一种是隐式转换,第二种是显式转换。根据编译器标志,您可能会在执行丢失精度的隐式转换时收到警告。旁注,文字3.14的类型为double,这意味着语句floatf=3.14中也可能存在精度损失>。一种干净的方法是编写floatf=3.14f指定这是float类型的值3.14。 关于c++

c++ - 通过引用使用 vector<int>::iterator 但有错误

#include#includeusingnamespacestd;intmain(){vectorvec={1,2,3,4};for(auto&it=vec.begin();it!=vec.end();++it){cout大家好,在C++中,我通过引用使用迭代器,例如“auto&it”,编译器返回错误"error:invalidinitializationofnon-constreferenceoftype'__gnu_cxx::__normal_iterator>&'fromanrvalueoftype'std::vector::iterator{aka__gnu_cxx::__n