gpt4 book ai didi

c++ - 从普通数组创建 QList

转载 作者:可可西里 更新时间:2023-11-01 18:16:28 25 4
gpt4 key购买 nike

我有这个

Struct values[] = {
{ a, b },
{ c, d }
};

我只想从中创建一个QList

QList<Struct> ql(values + 0, values + 2);

但由于某些原因,QList 没有合适的构造函数,似乎也没有合适的insert 函数。这是如何运作的?我在 Qt4.6 上。

最佳答案

一个解决方案是首先创建一个std::list,然后将其转换成一个QList:

QList<Struct> ql = 
QList<Struct>::fromStdList(std::list<Struct>(values + 0, values + 2));

但是,这会产生数组内容的两个拷贝,而不是一个。

另一种解决方案是使用 std::copyback_inserter:

QList<Struct> ql;
ql.reserve(2);
std::copy(values + 0, values + 2, std::back_inserter(ql));

如果您使用数组只是为了有一种简单的方法来初始化 QList,您也许可以改用插入运算符(假设 Struct 定义了正确的构造函数):

QList<Struct> ql;
ql << Struct(a, b)
<< Struct(c, d);

关于c++ - 从普通数组创建 QList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308833/

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