草庐IT

初始化OpenStack

全部标签

c++ - 如何在 C++ 类中初始化一对字符串、字符串的 vector ?

如何在C++类中初始化一对字符串的vector?我尝试了几件事,但都没有成功。vector>myVec();//doesn'twork 最佳答案 没有必要以这种方式初始化vectorvector>myVec();这是一个名称为myVec的函数声明没有参数,返回类型为vector>简单写就够了vector>myVec;因为无论如何您都在创建一个空vector。或者,如果您希望vector具有一些初始值并且您的编译器支持C++2011,那么您也可以编写示例std::vector>myVec={{"first","first"},{"se

c++ - (重新)将 vector 初始化为具有初始值的特定长度

作为函数参数,我得到一个vector&vec(一个输出vector,因此是非常量)具有未知的长度和值。我想将此vector初始化为全为零的特定长度n。这会起作用vec.clear();vec.resize(n,0.0);这也行得通:vec.resize(n);vec.assign(n,0.0);第二种效率更高吗(因为不涉及内存释放/分配)?有没有更有效的方法来做到这一点? 最佳答案 std::vector(n).swap(vec);在此之后,保证vec的大小和容量为n,所有值为0.0。也许自C++11以来更惯用的方式是vec.ass

c++ - 在 C++ 中初始化指针是强制性的吗?

在给t赋值之前,是否必须在下面的代码中初始化t?代码是否正确?voidswap(int*x,int*y){int*t;*t=*x;*x=*y;*y=*t;} 最佳答案 你不需要指针开始:voidswap(int*x,int*y){intt;//notapointer!t=*x;*x=*y;*y=t;}inta=10,b=20;swap(&a,&b);//--或者,您可能需要以下交换功能:voidswap(int&x,int&y)//parametersarereferencesnow!{intt;//notapointer!t=x;

c++ - 为什么未初始化的指针会导致接近 0 的内存访问冲突?

据说经常(但不总是)当你在一个接近于零的内存位置(比如89美元)中得到一个AV时,你有一个未初始化的指针。但我在Delphi书籍中也看到过这个......嗯......或者它们都是由同一作者写的???更新:引自BobSwart等人的“C++builder6开发人员指南”,第71页:WhenthememoryaddressZZZZZZZZZisclosetozero,thecauseisoftenanuninitializedpointerthathasbeenaccessed.为什么会这样?为什么未初始化的指针包含低数字?为什么不用像$FFFFFFF这样的大数字或普通随机数呢?这是都市

c++ - 如何正确初始化一个对象。 [C++]

我在之前的一个问题中提到,我正在阅读HerbSutter和AndreiAlexandrescu合着的《C++编码标准》一书。在其中一章中,他们是这样说的:Alwaysperformunmanagedresourceacquisition,suchasanewexpressionwhoseresultisnotimmediatelypassedtoasmartpointerconstructor,intheconstructorbodyandnotininitializerlists.这是否意味着我应该使用这种形式的构造(前提是data_3_必须用new初始化):SomeClass(co

C++ 没有初始化变量

我从friend那里得到了一个问题。问题是没有初始化变量如何打印0到10?我知道使用for循环使用初始化进行打印的方法for(inti=0;i此处inti=0被初始化。那么如何在不初始化相关变量的情况下打印0到10个值呢?可以吗? 最佳答案 你的friend应该学会更准确地指定他们的问题。inti;//iisnotinitializedi=0;//iisassignedfor(;i 关于C++没有初始化变量,我们在StackOverflow上找到一个类似的问题:

c++ - 在编译或初始化时对长数组进行编程初始化

这是一个代码片段来说明我的问题:constfloatD=0.1F;constfloatA[4]={sin(0*D),sin(1*D),sin(2*D),sin(3*D)};假设全局数组A更长,并且您不希望进行所有这些重复输入。是否有更短的方法在编译或初始化时初始化数组A,即无需编写初始化函数并在我的程序中的某处调用它? 最佳答案 您可以在动态初始化期间初始化A,如下所示:constfloat*init_a(floatx_){staticfloatdata[4];for(unsignedi=0;i

c++ - 构造函数初始化列表中的异常处理

在我的项目中,我发现了一段代码,其中在构造函数的初始化列表中调用了一个方法。Test2(Test*pTest):m_pTest(pTest),m_nDuplicateID(pTest->getTestID()){}我观察到Test2的用户有可能将NULL传递给构造函数。由于指针在未经验证的情况下使用,因此有可能发生访问冲突。这促使我研究构造函数的初始化列表中的异常处理。我在其中一篇文章中发现可以在初始化列表中使用try。我写了一个小测试程序来测试这个概念://TestclassstorestheuniqueIDandreturnsthesamewithAPIgetTestIDclass

c++ - 初始化 LPCTSTR/LPCWSTR

这个问题在这里已经有了答案:WhatdoesLPCWSTRstandforandhowshoulditbehandled?(3个答案)关闭9年前。我在理解和让它正常工作时遇到了疯狂的困难。基本上归结为我无法成功初始化这种类型的变量。它需要包含say7&2E25DC9D&0&USB003的内容。任何人都可以解释/展示具有类似值的这种类型的正确初始化吗?我查看了该站点上的所有帮助,将我的项目属性从unicode更改为多字节并不能解决问题,其他解决方案也不适合我。在我的代码中,这是我开始初始化的方式:LPCTSTRportvalue=newTCHAR[100];

c++ - 在 C++ 中初始化位域结构的最佳方法是什么?

在C++中,我有一个包含匿名位域结构的类。我想将它初始化为零,而不必手动写出所有字段。我可以想象将初始化放在三个地方:在位域中创建一个构造函数在包含类的构造函数的初始化列表中清零在包含类的构造函数体中清零这个位域有很多字段,我不想一一列举。例如看下面的代码:classBig{public:Big();//Bitfieldstructstructbflag_struct{unsignedintfield1:1;unsignedintfield2:2;unsignedintfield3:1;//...unsignedintfield20:1;//bflag_struct();其中一个更可取