gpt4 book ai didi

c++ - Qt 容器中如何添加 noname 栈数据?

转载 作者:行者123 更新时间:2023-11-28 07:33:58 25 4
gpt4 key购买 nike

例如,QList。现在我尝试使用这种方式:

Struct Data
{
...
}


...

Data * data_ptr = 0;

QList<Data> container;
while(some condition)
{
if(some condition)
{
data_ptr = new Data(some parameters);
container.append(*data_ptr);
delete data_ptr;
}
...
}

我需要使用命名指针在容器中创建一些数据,但也许有更简单的方法来创建这些数据,不是在 RAM 中,而是在堆栈中?也许甚至不需要名字?对不起,我在C++语言的手册中找不到这个信息。

最佳答案

不需要动态分配:

Data data(some parameters);
container.append(data);

可以通过附加一个临时的来缩短到:

container.append(Data(some parameters));

在 C++11 或更高版本中,您可以使用大括号初始化来创建临时对象。如果它是没有构造函数的普通聚合,这也将起作用:

container.append({some parameters});

尽管我发现一些较旧的编译器无法推断出必要的类型转换并需要帮助:

container.append(Data{some parameters});

关于c++ - Qt 容器中如何添加 noname 栈数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106227/

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