Best way to do pattern matching in QList
Hello, I need to match a pattern of about length 10, in a QList<qint8> of about size 50. All elements are either 0 or 1. The pattern may exist multiple times and I may need to find all of them. Any suggestions how to do this easily? I am not finding any QList compare functions.
Currently I am doing the following, but not very convenient:
@ for( int i=0; i<bits.size()-10; i++ )
if( bits.at(i)==0 && bits.at(i+1)==0 && bits.at(i+2)==0 && bits.at(i+3)==0
&& bits.at(i+4)==0 && bits.at(i+5)==0 && bits.at(i+6)==0 && bits.at(i+7)==0
&& bits.at(i+8)==1 && bits.at(i+9)==0 )
That's actually doing the job but if you want to save code or do it someway different, you could try:
Create an empty QString
Create a for to iterate trough all 10 values
On every iteration, append the current value to you QString
After the for ends, compare whatever pattern you want with your QString.
// your code
This may look longer to code, but it will allow you to compare what you have with any pattern, as well as they are the same size.
That is a good idea BlastDV. Maybe there is some easy way to compare a QList to a section of another QList.
I'm also interested to know. Let's see if some other idea pops up!