草庐IT

Duck-typing

全部标签

C++: "vector<int>::size_type variable"- 以这种方式声明有什么意义?

我认为这是一个非常基本的问题,但我无法弄清楚。我习惯于在C++中使用数组,但我现在开始学习vector。我正在编写测试代码,遇到了一个问题。首先,这是我制作的代码:#include#include#includeusingnamespacestd;intmain(){vectorscore(10);for(vector::size_typei=0;i>score[i];}doubletotal=accumulate(score.begin(),score.end(),0);cout在for第9行中的句子,我声明i作为vector::size_type类型(因为有人告诉我这样做)。我用i

C++ for 循环 - size_type 与 size_t

在C++Primer书,第(3)章,有以下for循环将vector中的元素重置为零。for(vector::size_typeix=0;ix!=ivec.size();++ix)ivec[ix]=0;为什么使用vector::size_typeix=0?我们不能说intix=0?在第二个表单上使用第一个表单有什么好处?谢谢。 最佳答案 C++标准说,size_type|unsignedintegraltype|atypethatcanrepresentthesizeofthelargestobjectintheallocationm

C++ for 循环 - size_type 与 size_t

在C++Primer书,第(3)章,有以下for循环将vector中的元素重置为零。for(vector::size_typeix=0;ix!=ivec.size();++ix)ivec[ix]=0;为什么使用vector::size_typeix=0?我们不能说intix=0?在第二个表单上使用第一个表单有什么好处?谢谢。 最佳答案 C++标准说,size_type|unsignedintegraltype|atypethatcanrepresentthesizeofthelargestobjectintheallocationm

c++ - 类 'is not a template type'

这个错误是什么意思?Generic.h:25:error:'Generic'isnotatemplatetype这里是通用的。templateclassGeneric:publicQObject,publicCFG,publicvirtualEvaluator{Q_OBJECTstd::stringkey_;std::vectorlayouts_;std::vectorstatic_widgets_;std::map>widget_templates_;std::mapwidgets_;inttype_;LCDWrapper*wrapper_;protected:LCDText*lcd

c++ - 类 'is not a template type'

这个错误是什么意思?Generic.h:25:error:'Generic'isnotatemplatetype这里是通用的。templateclassGeneric:publicQObject,publicCFG,publicvirtualEvaluator{Q_OBJECTstd::stringkey_;std::vectorlayouts_;std::vectorstatic_widgets_;std::map>widget_templates_;std::mapwidgets_;inttype_;LCDWrapper*wrapper_;protected:LCDText*lcd

c++ - 如何将 "pointer to pointer type"转换为 const?

用下面的代码voidTestF(constdouble**testv){;}voidcallTest(){double**test;TestF(test);}我明白了:'TestF':cannotconvertparameter1from'double**'to'constdouble**'我不明白为什么。为什么test不能被无声地转换为constdouble**?我为什么要明确地这样做?我知道TestF(const_cast(test))使我的代码正确,但我觉得这应该是不必要的。我缺少一些关于const的关键概念吗? 最佳答案 该

c++ - 如何将 "pointer to pointer type"转换为 const?

用下面的代码voidTestF(constdouble**testv){;}voidcallTest(){double**test;TestF(test);}我明白了:'TestF':cannotconvertparameter1from'double**'to'constdouble**'我不明白为什么。为什么test不能被无声地转换为constdouble**?我为什么要明确地这样做?我知道TestF(const_cast(test))使我的代码正确,但我觉得这应该是不必要的。我缺少一些关于const的关键概念吗? 最佳答案 该

c++ - _Block_Type_Is_Valid (pHead->nBlockUse) 错误

我一直在从事一个新项目,但遇到了一个我不知道为什么会失败的问题。当我执行此行删除textY时,给我错误_Block_Type_Is_Valid(pHead->nBlockUse)。那我做错了什么?这是源代码:Text.h#ifndefTEXT_H#defineTEXT_Htypedefboost::shared_ptrFontPtr;classText{public:Text(FontPtrfont,char*text){str=newchar[35];this->font=font;str=text;}Text(constText&cSource);Text&operator=(co

c++ - _Block_Type_Is_Valid (pHead->nBlockUse) 错误

我一直在从事一个新项目,但遇到了一个我不知道为什么会失败的问题。当我执行此行删除textY时,给我错误_Block_Type_Is_Valid(pHead->nBlockUse)。那我做错了什么?这是源代码:Text.h#ifndefTEXT_H#defineTEXT_Htypedefboost::shared_ptrFontPtr;classText{public:Text(FontPtrfont,char*text){str=newchar[35];this->font=font;str=text;}Text(constText&cSource);Text&operator=(co

c++ - C++17 中已弃用的 std::is_literal_type

根据cppreference,性状std::is_literal_type在C++17中已弃用。问题是为什么和首选替代品是什么以供将来检查类型是否为literaltype. 最佳答案 AsstatedinP0174:Theis_literaltypetraitoffersnegligiblevaluetogenericcode,aswhatisreallyneededistheabilitytoknowthataspecificconstructionwouldproduceconstantinitialization.Thecor