如何从 std::vector 创建 QList
How to create QList from std::vector
QList::fromStdList
允许您从 std::list
创建 QList
。但是如何从 std::vector
创建 QList
?
当然,除了手动循环:
QList<T> myList;
myList.reserve(vector.size());
for(size_t i = 0, l = vector.size(); i < l; ++i)
myList << vector[i];
QVector 可以从标准矢量创建,因此如果您想避免循环,可以这样做:
QList<T> myList = QList<T>::fromVector(QVector<T>::fromStdVector(vector));
当然,这会在此过程中创建不必要的副本。不必编写循环,您还可以使用 std::copy 和 back_inserter
QList<T> myList;
myList.reserve(vector.size());
std::copy(vector.begin(), vector.end(), std::back_inserter(myList));
QList::fromStdList
允许您从 std::list
创建 QList
。但是如何从 std::vector
创建 QList
?
当然,除了手动循环:
QList<T> myList;
myList.reserve(vector.size());
for(size_t i = 0, l = vector.size(); i < l; ++i)
myList << vector[i];
QVector 可以从标准矢量创建,因此如果您想避免循环,可以这样做:
QList<T> myList = QList<T>::fromVector(QVector<T>::fromStdVector(vector));
当然,这会在此过程中创建不必要的副本。不必编写循环,您还可以使用 std::copy 和 back_inserter
QList<T> myList;
myList.reserve(vector.size());
std::copy(vector.begin(), vector.end(), std::back_inserter(myList));