草庐IT

initialization

全部标签

c++ - vector 初始化 vector

我很难全神贯注于如何初始化vector的vector。typedefvector>>>数据容器;我希望它符合level_1(2elements/vectors)level_2(7elements/vectors)level_3(480elements/vectors)level_4(31elementsoffloat)解决元素问题不是问题。这应该像这样简单dc[0][1][2][3];问题是我需要用文件中乱序的数据来填充它,这样连续的项目就需要像这样放置dc[0][3][230][22];dc[1][3][110][6];//...etc所以我需要事先初始化V的V。我是在把自己吓坏还是

gcc 4.8.1 : list-initialization for copy constructor doesn't work 中的 C++11

我鼓励这个问题:如果我有classA{public:};intmain(){Aa{};Ab{a};}gcc给出:moves.cc:Infunction‘intmain()’:moves.cc:15:7:error:toomanyinitializersfor‘A’Ab{a};但是当我使用Ab(a)而不是Ab{a}时,所有编译都正确。如果我声明默认构造函数,它也会编译。为什么会这样? 最佳答案 该类是一个聚合,因此列表初始化将执行聚合初始化,并且不会考虑隐式声明的构造函数。因为没有数据成员,所以只有空列表可以是有效的聚合初始化器。Bu

c++ - 如何使用 avr-gcc 在 C/C++ 中执行预主初始化?

为了确保一些初始化代码在main之前运行(使用Arduino/avr-gcc),我有如下代码:classInit{public:Init(){initialize();}};Initinit;理想情况下,我希望能够简单地编写:initialize();但这不能编译...有没有更简洁的方法来达到同样的效果?注意:代码是Arduino草图的一部分,因此main函数是自动生成的,不能修改(例如调用initialize在任何其他代码之前)。更新:理想情况下,初始化将在setup函数中执行,但在这种情况下,还有其他代码依赖于它发生在main. 最佳答案

c++ - 为什么在 C++ 中不允许初始化整数成员变量(不是 const static)?

当我尝试在类定义中初始化一个int成员变量时,我的C++编译器报错。它告诉“只能在类中初始化静态常量整数数据成员”。您能否解释此限制背后的基本原理(如果可能,举例说明)。 最佳答案 因为目前的标准是不允许的。AccordingtoBjarne,您将能够在C++0x中执行此操作。如果您确实需要它,请尝试将编译器设置为C++0x(GCC中的-std=c++0x)并查看您的编译器是否支持它。 关于c++-为什么在C++中不允许初始化整数成员变量(不是conststatic)?,我们在Stack

c++ - 使用连续无符号整数列表初始化 std::vector<unsigned int>

我想用一种特殊的方法来初始化一个std::vector这在我用作引用的C++书籍中有所描述(如果重要的话,UlrichBreymann的德语书籍'DerC++Programmer')。在那本书中有一个关于STL序列类型的部分,特别提到了list,vector和deque.在本节中,他写道,这种序列类型有两个特殊的构造函数,即如果X指的是这样一种类型,X(n,t)//createsasequencewithncopiesoftX(i,j)//createsasequencefromtheelementsoftheinterval[i,j)我想在unsignedint的间隔内使用第二个,即

c++ - 静态初始化的非文字对象的销毁顺序

Arecentquestion提请我注意constexprhaschangedinC++14的方式.新特性是,如果其初始化程序由constexpr构造函数组成,则具有静态存储持续时间的非局部变量可以在静态初始化阶段进行初始化,即使变量的类型不是文字类型。更准确地说,[basic.start.init]中的新措辞是:Aconstantinitializerforanobjectoisanexpressionthatisaconstantexpression,exceptthatitmayalsoinvokeconstexprconstructorsforoanditssubobjects

c++ - 在类模板中使用 = 的类内初始化器

我很抱歉,但我不明白为什么以下内容不起作用(gcc4.8.1):#includeusingnamespacestd;templatestructA{//A():s("why"){}//fine//strings{"what"};//alsofine//A()=default;//(sameerrorasbelow)strings="why?!";//error:conversionfrom'constchar[6]'tonon-scalartype'std::string{akastd::basic_string}'requested|};structB{strings="why?!"

c++ - 文件范围的原子是否受初始化顺序失败的影响?

考虑以下情况,我们在不同的翻译单元中有两个文件范围的对象,这是通过初始化顺序失败的未定义行为的通常设置:a.hpp:structthing{public:thing(intvalue);~thing();intvalue()const;staticintcount();private:int_value;};a.cpp:#include"a.hpp"#includenamespace{std::atomicthings;}thing::thing(intvalue):_value(value){++things;}thing::~thing(){--things;}intthing::

c++ - T t {x} 和 T t = { x } 对于整数或枚举类型的区别?

在C++14中:对于任何整数或枚举类型T以及对于任何表达式expr:有没有区别:structS{Tt{expr};};和structS{Tt={expr};};更新:我得到了[dcl.init.list]p3b5上面写着:IftheinitializerlisthasasingleelementoftypeEandeitherTisnotareferencetypeoritsreferencedtypeisreference-relatedtoE,theobjectorreferenceisinitializedfromthatelement.我相信这句话适用于direct-list-

c++ - 静态成员初始化期间访问私有(private)静态函数

我有一个带有静态成员的类。这将使用同一类的私有(private)静态函数进行初始化。#include#includeclassA{public:staticstd::stringconsts;private:staticstd::stringmake(){return"S";}};std::stringconstA::s=A::make();intmain(){std::cout我的问题是:由于哪条规则允许这样做?显然注释部分不起作用,因为不允许我从类外访问私有(private)函数。那么为什么私有(private)静态成员在启动时的初始化是一个特例呢?(附带说明:这条规则的目的是什么