草庐IT

int_mnth_goal

全部标签

c++ - 为什么别名 int& 允许创建非函数类型 const (int&)?

通常在使用常量引用时会出现编译器错误,但在使用别名或使用模板时不会。为什么会这样?inta=5;usingmy_t=int&;my_tconstb=a;//#1OKint&constc=a;//#2Compilererror当运行最新的clang编译器(x86-64clang(实验性P1144))时,#1给我警告:[x86-64clang(experimentalP1144)#1]warning:'const'qualifieronreferencetype'my_t'(aka'int&')hasnoeffect[-Wignored-qualifiers]#2给出了错误:[x86-64

c++ - 将 vector<int> 分配给 vector<double> 安全吗?

这个问题在这里已经有了答案:C++convertvectortovector(2个答案)关闭去年。要为某个计算初始化变量,我必须从整数数组中为它们赋值。所以我这样做:vectorvd;intai[N];//Filledsomewhereelsevd.assign(ai,ai+N);这适用于gcc4.6.1Linux。但它总是正确的吗?或者我应该回到常青树:vd.resize(N);for(inti=0;i感谢您的澄清!

c++ - 从二进制文件读取字节到 long int

我有两个问题:我有一个二进制文件中的数据。我想通过使用读取函数读取前8个字节以签名longint,但我不能。你知道我该怎么做吗?如何直接读取一段数据为字符串?我可以像中所示那样阅读吗例如:ifstreamis;is.open("test.txt",ios::binary);stringstr;is.read(str.c_str,40);//40bytesshouldberead 最佳答案 Iwantreadfirst8bytestosignedlongintbyusingreadfunctionbutIcouldnot.Doyouk

c++ - 将 float 转换为表示为 int 的通用定点

我正在为我构建的一些硬件编写一个软件驱动程序,它只实现定点运算。我搜索了高低但似乎无法找到允许我将float转换为固定(x:y)+1符号位的通用算法。我还想将其表示为一个int,以便我可以测试用python和c++编写的一般模拟算法的准确性和速度比较。(我使用的是64位MacbookPro)我在诺基亚网站上找到的最接近我需要的东西http://developer.nokia.com/Community/Wiki/Fixed-point_math_for_Python但他们只转换为16:16并且不太了解常量65536.0从何而来,而我需要x:y。编辑---我仍然发现在转换回来时所有小数部

c++ - 奇怪的行为,用 int 初始化函数指针?

无意中,我发现这段代码可以在VS2012上编译。typedefvoid(*func)();funcf=func(12);f被初始化为一个整数12作为它的地址。据我所知,从整数转换为函数指针是有效的,如下所示:funcf=(func)12;虽然语句func(12)看起来更像是一个构造函数,所以我尝试了这个:funcf(12);编译失败。funcf=(func)12//ok,cast1funcf=func(12);//ok,what?2funcf(12);//failed3funcf=12;//failed4所以我的问题是:func(12)的真正底层语法是什么,是强制转换还是初始化?如何使

c++ - 将从函数返回 vector<vector <int>> 调用 C++11 中的任何 move 构造函数

在C++11中将返回一个vector>从函数调用任何move构造函数?还是下面的代码只是制作所有vector及其元素的另一个拷贝?vector>Func(){vector>vec;//vecisfilledherereturnvec;}对于简单类型的STL容器,当使用move构造函数或将它们作为函数值返回时进行复制时,是否有一个通用的发现? 最佳答案 return语句在标准中特别涵盖,可自动视为move。所以是的,这将调用move构造函数。这方面的法律条文是C++11,[class.copy]§31+32:31Whencertain

C++ Boost 多精度 cpp_int

我尝试获取一个大数字的日志。我应该怎么做?我无法使用gmp.hpp,因为它显示Cannotopenincludefile:'gmp.h':Nosuchfileordirectory下面的代码#include#include#definersa100"1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139"usingnamespacestd;usingnamespaceboost::multiprecision;intmain(){cpp_in

c++ - 模棱两可的调用 : int to double or bool

我有一个参数类,我重载了构造函数以接受bool值或double值。当你给它一个int时,它无法构建:errorC2668:'Parameter::Parameter':ambiguouscalltooverloadedfunctioncouldbe'Parameter::Parameter(std::string,std::string,double)'or'Parameter::Parameter(std::string,std::string,bool)'我相信我有两个选择:使用int默认值重载将我的变量显式转换为double我有很多参数,其中一些是无符号长整型、float等(在多

c++ - 使用 a<32> 将 bitset<a> 转换为 signed int

我正在阅读问题convertbitsettointinc++然后想,嘿,那行不通,我已经试过了。但后来我开始尝试并很快发现:#include#includeintmain(){std::bitsetb31(-1);std::bitsetb32(-1);std::cout(b31.to_ulong())(b32.to_ulong())给出输出2147483647-1那么,如何将小于32的位集转换为有符号整数?澄清:我想使用在构造保留的位集时使用的10基值转换回signedint。“将带符号的整数存储在位集中”我已经在win7上用gcc4.6.2和mingw32试过了,用c风格的转换(in

c++ - 将 QComboBox::currentIndexChanged(int) 连接到 QSignalMapper::map()

我想弄清楚如何在Qt5中实现这一点:connect(qcombobox,SIGNAL(currentIndexChanged(int),qsignalmappe,SLOT(map()));我试过这个:connect(comboBox,static_castsignalMapper,&QSignalMapper::map);但是编译器提示没有匹配的参数。我知道QSignalMapper::map()信号没有参数,但我不知道它如何使用旧语法。 最佳答案 试试这个,它对我有用connect(comboBox,static_cast(&QC