向量中的结构成员在C ++中是否用零初始化?

布拉姆·维森

在C ++中,当我有一个像

struct myStruct
{
  int i;
  bool b;
  MyClass *myobj;
};

然后我做一个向量

std::vector<myStruct> myVector;

然后用

myVector.resize(10);

是否将结构的成员初始化为零(包括指针)?我可以不假设这种结构成员中是否可能存在随机数据?

英雄胡桃

在这种情况下,由于的属性,答案为std::vector::resize()

If the current size is less than count, additional elements are appended and initialized with copies of value.      (until C++11)

If the current size is less than count,  (since C++11)
    1) additional value-initialized elements are appended
    2) additional copies of value are appended

对于正常情况,答案将是“”,例如myStruct s,这将使它们(s.i, s.bool, s.myobj)的值不确定

如果仍然希望按预期方式对其进行初始化,请为该结构创建一个构造函数:

struct myStruct {
    int i;
    bool b;
    MyClass *myobj;

    myStruct():i(0),b(false),myobj(NULL) { }  // <- set them here by default
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

结构成员在C中的订购优势

如何在C ++中初始化结构内部联合的结构成员?

在向量结构成员中打印 time_t

在SWIG for Python中创建时如何初始化C结构成员?

访问 C 中结构数组中的数组(结构成员)

使用结构成员指针在C ++中填写结构

C语言:函数中释放结构成员的错误

是C中结构成员的数组的指针算术

仅在C中读取fseek结构成员

如何在C ++中的循环内创建结构成员

C中结构成员值的自赋值

通过函数在 C 中初始化嵌套 SDL_Rect 结构成员的速记或内联方法

constexpr结构成员初始化

使用在 Rust 中返回元组的函数初始化两个结构成员

零重新初始化C ++中的结构

如何在C ++中的结构中初始化向量

在C中遍历具有未知大小结构成员的结构数组

在C中“模拟”多态时使用结构成员与强制转换结构指针之间的区别

C++ 11 - 修改结构向量中结构的成员

在Athena中,如何查询结构数组中的结构成员?

是否可以覆盖在C ++中获取结构成员的默认行为?

在构造函数 C++ 中初始化结构向量

是否有保证int成员被零初始化的情况?

如何通过双指针访问结构中的结构成员?

初始化列表中的零初始化数组成员

在c ++ 11中,您是否可以始终(安全)用空的初始化程序替换memset()初始化?

指向结构成员的指针,无需初始化

在头文件中的结构成员使用#define宏时,无法编译C代码

如何获取C中嵌套结构成员的偏移量?