草庐IT

初始化OpenStack

全部标签

c++ - 在初始化时预填充 std::vector?

我想创建一个doublevector的vectorvector,并希望它已经有(32,32,16)个元素,而不用手动将所有这些元素推回去。有没有办法在初始化期间做到这一点?(我不在乎什么值被推送)。我想要一个三维数组,第一维有32个,第二维有32个,第三维有16个元素。 最佳答案 一个类轮:std::vector>>values(32,std::vector>(32,std::vector(16,0.0)));或者换行:typedefstd::vectorv_type;typedefstd::vectorvv_type;typede

c++ - 在不使用默认构造函数或赋值的情况下在构造函数中初始化数组

考虑:structA{A(int);A(constA&);};structB{Afoo[2];B(constA&x,constA&y):foo{x,y}/*HEREISTHEPROBLEM*/{}};我期望它能工作,因为我在GCC4.3中使用C++0x支持,据称它支持初始化列表。没有快乐。我有一个没有默认构造函数的类A。这是没有商量余地的。违约后分配不是一种选择。我正在尝试创建使用A的B。B::foo可能不是std::vector。如何在B(...)中初始化B::foo,只构造一次它的元素?目前,我正在考虑将B替换为structB{Afoo_a;Bfoo_b;A*foo(){asser

c++ - 使用非默认构造函数初始化成员类

我正在尝试制作一个具有包含textPanel类的SimpleWindow类的图形用户界面:classtextPanel{private:std::stringtext_m;public:textPanel(std::stringstr):text_m(str){}~textPanel();};classSimpleWindow{public:SimpleWindow();~SimpleWindow();textPaneltext_panel_m;};SimpleWindow::SimpleWindow():text_panel_m(std::stringtemp("defaultval

c++ - 从常量引用初始化非常量引用

intmain(){intx=10;constint&z=x;int&y=z;//whyisthisillformed?}为什么将对int的非常量引用初始化为常量引用是不正确的?这背后的原因是什么? 最佳答案 那么,为什么它不应该是病式的呢?它的格式不正确,因为它违反了constcorrectens的明显规则。在C++语言中,不允许将常量访问传递隐式转换为非常量访问路径。指针和引用是一样的。这就是拥有恒定访问路径的全部目的:防止修改路径所指向的对象。一旦您将其设为常量,就不允许返回到非常量,除非您通过使用const_cast做出具体

c++ - RAII如何应用于需要扩展初始化的类成员?

据我所知,当RAII惯用语应用于类所需的资源时(如果我错了请纠正我),需要资源的类应该定义适当类型的成员,并且它的析构函数将当using类实例被销毁时自动调用,如下所示:classSkybox{public:Skybox():tex_(...){}private:Texturetex_;};除了使用智能指针在堆上分配资源之外,如果资源成员需要在Skybox构造函数中执行一些代码,那么在初始化资源?例如:classSkybox{public:Skybox(conststd::string&fileName);private:Texturetex_;}Skybox::Skybox(cons

c++ - 如果显式定义了构造函数,是否必须初始化类成员?

我的大学课本上说:Whenaconstructorisdeclaredforaclass,initializationoftheclassobjectsbecomesmandatory.链接到specificpageofthebook.我们可以声明什么都不做的构造函数,因此初始化肯定不是强制性的,是吗?如果不是,作者的意思是在风格上如果我们显式声明构造函数,我们应该初始化类成员,也就是说,它是作为规则还是指南? 最佳答案 如果出现以下情况,我们必须在构造函数中初始化成员:成员没有默认构造函数。成员是reference/const-r

c++ - 初始化 std::complex

我在网上看到几个示例,这些示例表明std::complex变量可以通过以下方式初始化:std::complexval(10,-2);但是,有没有办法做类似下面的事情:std::complexval;val.real=10;val.imag=-2; 最佳答案 std::complex::real和std::complex::imag是真正的功能。它们可用于返回实部/虚部以及设置它们,但仍通过提供值作为参数来使用函数调用语法:std::complexval;val.real(10);val.imag(-2);但是,这不叫初始化。这会更改

c++ - C++ 中未初始化的引用成员

我用C++创建了一个类,我希望它有一个字段Osoba&但我得到一个奇怪的错误:classRachunek{public:Osoba&wlasciciel;doublestan_konta;Rachunek(Osoba*wlasciciel,doublestan_konta){//Uninitializedreferencememberthis->wlasciciel=wlasciciel;this->stan_konta=stan_konta;}}; 最佳答案 像这样使用初始化列表:(最佳方法)classRachunek{publi

c++ - vector 中的结构成员是否在 C++ 中初始化为零?

在C++中,当我有一个像这样的结构时structmyStruct{inti;boolb;MyClass*myobj;};然后我制作一个vectorstd::vectormyVector;然后我调整vector的大小myVector.resize(10);结构的成员会被初始化为零(包括指针)吗?我不能假设结构的成员中可能存在随机数据吗? 最佳答案 在这种特殊情况下,答案是是,因为std::vector::resize()的属性:Ifthecurrentsizeislessthancount,additionalelementsarea

如何在Angular2打字稿中初始化值

我有一个“等级”类,其中包含一个损失属性和胜利属性。他们俩都是从Web服务中收集的。我想根据它们计算点属性。为execample:for(inti=0;i等级类classRank{$id?:number;loses?:number;team?:string;wins?:number;points:number;constructor(){}}我必须在哪里放置逻辑?看答案我认为您应该在Rank构造函数。classRank{publicpoints:number;constructor(publicid:number,publicloses:number,publicteam:number,pub