c++ - 如何从 std::vector 创建 QList

标签 c++ arrays containers stdvector qlist

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 可以从标准 vector 创建,所以如果你想避免循环,你可以这样做:

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));

关于c++ - 如何从 std::vector 创建 QList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434567/

相关文章:

c++ - extern 数组出现 undefined reference 错误,但适用于 int

c++ - 我不知道这是什么(C++ 链接器错误)

PHP:获取当前数组键?

docker - 从 Private Docker Registry 中删除图像的方法

c++ - 存储一组指针会导致未定义的行为吗?

c++ - 如何创建一个单选按钮并查看它是否被选中?

arrays - 如何在 Swift 中过滤对象以仅显示其值?

arrays - 如何将字符串数组传递给delphi中的函数参数

docker - 为什么 ubuntu 镜像大小比其 iso 文件小得多?

haskell - Haskell 有严格的 Set 容器吗?