gpt4 book ai didi

c++ - 类范围内的二维 vector

转载 作者:行者123 更新时间:2023-11-28 02:14:53 27 4
gpt4 key购买 nike

我想要一个包含字符串的二维 vector ,所以我尝试了类似的方法:

QVector<QVector<QString*> > register_options(8, QVector<QString*>(8)); //getting 'expected identifier before numeric constant'
QVector<QVector<QString> > register_options; // getting 'field has incomplete type'

这是我找到的初始化 here

我还读到它不可能在类范围内没有初始化 vector ,应该在构造函数中完成,我理解但是我不能在类范围内定义 var 的原型(prototype)。

我也试过

//header
QVector<QString> register_bits; // field has incomplete type
QVector<QVector<QString> > register_options; // field has incomplete type
//source
registers::registers() : register_bits(8, 0), register_options(8, register_bits)
{ //...

所以我的问题是:如何在类范围内定义 vector ,然后在构造函数中初始化它?

最佳答案

So my question is: how to define the vector in the class scope and then initialize it in the constructor?

使用 C++ 11 初始化列表在内存中初始化此类结构的一种可能方法:

class MyClass
{
private:
QVector<QVector<QString> > vct {{"", ""}, {""}, {"", "", ""}};
};

或排队:

QVector<QVector<QString> > vct = {{"", ""}, {""}, {"", "", ""}};

或在构造函数或任何类的方法中:

vct = {{"", ""}, {""}, {"", "", ""}};

我试过了,编译成功了。上面的模式实际上是一个 aggregate initialization正如原始发帖人在评论中所问。

关于c++ - 类范围内的二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34323932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com