例如,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中,而是在堆栈中?甚至不需要名字?
抱歉,在++语言手册中找不到此信息。
最佳答案
无需动态分配:
Data data(some parameters);
container.append(data);
可以通过以下方式将其缩短:
container.append(Data(some parameters));
在C ++ 11或更高版本中,您可以使用花括号初始化来创建临时文件。如果它是没有构造函数的纯聚合,这也将起作用:
container.append({some parameters});
尽管我发现某些较旧的编译器无法推断出必要的类型转换,但需要帮助:
container.append(Data{some parameters});
关于c++ - 如何将Noname堆栈数据添加到Qt容器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17106227/