Massive speed up to QgsStringUtils::levenshteinDistance by using std::vector instead of QVector

This commit is contained in:
Nyall Dawson 2023-03-20 10:45:09 +10:00
parent 68bc918200
commit e04aa7b187

View File

@ -193,13 +193,12 @@ int QgsStringUtils::levenshteinDistance( const QString &string1, const QString &
} }
//levenshtein algorithm begins here //levenshtein algorithm begins here
QVector< int > col; std::vector< int > col( length2 + 1, 0 );
col.fill( 0, length2 + 1 ); std::vector< int > prevCol;
QVector< int > prevCol;
prevCol.reserve( length2 + 1 ); prevCol.reserve( length2 + 1 );
for ( int i = 0; i < length2 + 1; ++i ) for ( int i = 0; i < length2 + 1; ++i )
{ {
prevCol << i; prevCol.emplace_back( i );
} }
const QChar *s2start = s2Char; const QChar *s2start = s2Char;
for ( int i = 0; i < length1; ++i ) for ( int i = 0; i < length1; ++i )