qt c++组织数组,并快速查找大数据

#include

#include

#include


int main()

{

// 如何组织并快速查找大数据量的数组数据

QTime time;

// 方法1:传统查找数组的方法:将数据放入list列表,通过循环来查找数据

QStringList strList;

for (int i = 0; i < 100 * 100 * 100; i++)

{

strList.append(QString("传统查找%1").arg(i + 1));

}

// 查找数组中的数据是否包含999999

time.start();

for (int i = 0; i < strList.size(); i++)

{

QString strTemp = strList.at(i);

if (strTemp.contains("传统查找999999"))

{

qDebug() << "传统找到数据,耗时:" << time.elapsed() << "毫秒";

}

}


// 方法2:使用std:set组数组查找:将数据放入set中,通过set容器的find方法来查找数据

std::set setStrList;

for (int i = 0; i < 100 * 100 * 100; i++)

{

setStrList.insert(QString("set查找%1").arg(i + 1));

}

// 查找数组中的数据是否包含999999

time.start();

if (setStrList.find("set查找999999") != setStrList.end())// 没有到结尾就找到数据

{

qDebug() << "set找到数据,耗时:" << time.elapsed() << "毫秒";

}


return 0;

}

输出:

传统找到数据,耗时: 1102 毫秒

set找到数据,耗时: 0 毫秒

总结:

将数据放入set容器,进行数据查找的效率,远远高于将数据放入qstringlist并进行查找的效率。如果进行多次查找,效率差距将更加明显

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章