gpt4 book ai didi

qt - 未排序的 Qt 容器

转载 作者:行者123 更新时间:2023-12-04 06:05:17 24 4
gpt4 key购买 nike

我有一个 QVector,它应该存储文件路径,例如

"./zThumbnail/1004.jpeg"
"./zThumbnail/1005.jpeg"
"./zThumbnail/1006.jpeg"
"./zThumbnail/1007.jpeg"
"./zThumbnail/1008.jpeg"
"./zThumbnail/1009.jpeg"
"./zThumbnail/101.jpeg"
"./zThumbnail/1010.jpeg"
"./zThumbnail/1011.jpeg"
"./zThumbnail/1012.jpeg"
"./zThumbnail/1013.jpeg"

QFileInfoList filelistinfo = dir.entryInfoList();
foreach (const QFileInfo &fileinfo, filelistinfo) {
imagePath.push_back(fileinfo.absoluteFilePath());
qDebug() << fileinfo.absoluteFilePath();
}


./abc/1.jpg
./abc/2.jpg
./abc/3.jpg
.
.
.
./abc/1209.jpg

但是它不是按照上面的顺序存储,而是像这样存储

./abc/1.jpg
./abc/10.jpg
./abc/100.jpg
./abc/1000.jpg
./abc/1001.jpg
.
.

如何以数字顺序存储图像文件路径?

最佳答案

您可以使用 std::sort 进行排序,就此而言,我假设文件的基本名称是一个整数。

QFileInfoList filelistinfo = dir.entryInfoList();
for(const QFileInfo &fileinfo: filelistinfo)
imagePath.push_back(fileinfo.absoluteFilePath());

std::sort(imagePath.begin(), imagePath.end(),
[](const QString & a, const QString & b) -> bool
{
return QFileInfo(a).baseName().toInt() < QFileInfo(b).baseName().toInt();
});

qDebug()<<imagePath;

注意:目前不建议使用qSort,因为它通常比std::sort慢,有关更多信息,请阅读:Performance of qsort vs std::sort?

关于qt - 未排序的 Qt 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49685050/

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