草庐IT

int_types

全部标签

c++ - 为什么 boost uniform_int_distribution 采用封闭范围(而不是半开放范围,遵循常见的 C++ 用法)?

标题说明了一切。甚至还有一个warning在文档页面中:Warning:ContrarytocommonC++usageuniform_int_distributiondoesnottakeahalf-openrange.Insteadittakesaclosedrange.Giventheparameters1and6,uniform_int_distributioncancanproduceanyofthevalues1,2,3,4,5,or6.当C++中的常见做法是使用开放范围[begin,end)时,为什么要这样做? 最佳答案

c++ - 如何 vector<int> += 1,1,2,2,2,3,4,5,6;可能的?

我在boostdocumentation中发现了这个奇怪的语法.std::vectorinput;input+=1,1,2,2,2,3,4,5,6;// 最佳答案 这只是Boost.Assignment图书馆。它使用operator+=和operator,重载使容器的分配更容易。语法分解可以由operatorprecedence给出表。本质上input+=1将返回一个具有operator,的代理对象重载将执行顺序插入,大致相当于:autox=(input+=1);//input.push_back(1);x,2;//input.pu

c++ - 使用 vector<int>::size_type 和普通整数有什么区别?

我是c++STL语言的初学者。我想知道这两个代码之间的区别。我问过我的friend,但他说两者是一样的。任何人都可以解释这两个是否相同。并解释为什么这些不同#include#includeusingnamespacestd;intmain(){vectorstudent_marks(20);for(vector::size_typei=0;i>student_marks[i];}return0;}和#include#includeusingnamespacestd;intmain(){vectorstudent_marks(20);for(inti=0;i>student_marks[

c++ - 是 int & foo();一个左值?

我知道可能还有其他类似的问题,但他们没有完全回答我的问题。我一直在浏览有关C++类型推导的讲座中的一些幻灯片,在其中一张中我发现了以下语句:int&foo();//foo()islvalue;起初,我以为这是错误的——foo是一个函数,它不能被赋值,它不是一个左值。但现在我想作者可能有不同的想法。也就是说,函数调用可能是左值,而不是函数本身。换句话说:foo是左值吗?foo()是左值吗?是否可以将函数(不是函数调用)分配给(即foo=something;)?“左值是可以分配给的每个对象/事物”-这个陈述总是正确和准确的吗?问题4需要更多解释。有了它,我试图理解什么是左值。我看到的另一个

c++ - 错误 : cannot declare variable ‘bg’ to be of abstract type ‘cv::BackgroundSubtractorMOG2’ in OpenCV 3

我最近在我的ubuntu14.10系统中安装了OpenCv并且我正在运行一个程序并且正在运行cv::BackgroundSubtractorMOG2我遇到了一个错误。错误是cannotdeclarevariable‘bg’tobeofabstracttype‘cv::BackgroundSubtractorMOG2’为什么我会遇到这个错误我的代码示例intmain(intargc,char*argv[]){Matframe;Matback;Matfront;vector>hand_middle;VideoCapturecap(0);BackgroundSubtractorMOG2bg;

c++ - 输入一个字母到 'int'

代码:inta;cin>>a;cout然后我使用g++test.cpp,并运行它。然后我向变量a输入一个字母'b'。输出为0。但是,当我测试其他代码时:cout为什么?有什么不同? 最佳答案 std::cin是一个对象,一个std::istream的实例.std::istream已重载>>支持avarietyoftypes.其中一种类型是&int.当有std::istream在>>的左边和右边的整数引用,方法istream&operator>>(int&val)叫做。该方法的概念性实现如下。将0存入累加器读取输入的一个字符如果字符是

c++ - 有没有比 allocator_type 更好的方法来区分可调整大小的容器?

我有operator>>()的模板重载,我需要区分可以调整大小的容器(例如vector)和不能调整大小的容器(例如,数组。我目前只是在使用allocator_type特征(见下面的代码)——它工作得很好——但想知道是否有更明确的测试方法。templatestructis_resizable{typedefuint8_tyes;typedefuint16_tno;templatestaticyestest(classU::allocator_type*);templatestaticnotest(...);staticconstboolvalue=sizeoftest(0)==sizeo

c++ - "unresolved overloaded function type"在 std::function 中有静态函数

尝试将重载静态函数传递给std::function时出现“未解析的重载函数类型”错误。我知道类似的问题,例如this和this.然而,即使那里的答案可以将正确函数的地址放入函数指针中,它们也会因std::function而失败。这是我的MWE:#include#include#includestructClassA{staticstd::stringDoCompress(conststd::string&s){returns;}staticstd::stringDoCompress(constchar*c,size_ts){returnstd::string(c,s);}};voidh

c++ - 无法将 'int (*)[size]' 转换为 'int**'

我有一个256x256的二维float组,我试图将其传递给函数,但g++给我错误消息:无法将'int(*)[256]'转换为'int**'。我该如何解决这个问题?voidhaar2D(int**imgArr);intimageArray[256][256];haar2D(imageArray);我曾尝试将函数参数更改为int[256][256]和int*[256]类型,但没有成功。 最佳答案 必须按照编译器的要求声明函数参数。所以声明它要么像voidhaar2D(intimgArr[256][256]);或voidhaar2D(in

c++ - C++ "type deduction"和 Haskell "type inference"有什么区别?

在英语语义中,“typededuction”等于“typeinferring”吗?我不确定这只是不同语言设计者选择的成语偏好,或者计算机科学给出了严格的“类型推导”定义,哪个不是“类型推断”?谢谢。 最佳答案 C++规范和工作草案广泛使用“类型推导”来指代没有类型声明作为引用的表达式类型;例如thisworkingdraftonconcepts在谈论auto声明的变量时使用它,我记得很多书在谈论模板时都使用它,那时候我不得不学习——然后忘记了大部分——C++。Typeinference但是,它有自己的维基百科页面,也是编程语言理论中