The QStaticByteArrayMatcher class is a compile-time version of QByteArrayMatcher . 更多...
| 头: | #include <QStaticByteArrayMatcher> | 
| qmake: | QT += core | 
| Since: | Qt 5.9 | 
| int | indexIn (const QByteArray & haystack , int from = ...) const | 
| int | indexIn (const char * haystack , int hlen , int from = ...) const | 
| QByteArray | pattern () const | 
| QStaticByteArrayMatcher<N> | qMakeStaticByteArrayMatcher (const char (&)[N] pattern = N) | 
The QStaticByteArrayMatcher class is a compile-time version of QByteArrayMatcher .
This class is useful when you have a sequence of bytes that you want to repeatedly match against some byte arrays (perhaps in a loop), or when you want to search for the same sequence of bytes multiple times in the same byte array. Using a matcher object and indexIn () is faster than matching a plain QByteArray with QByteArray::indexOf (), in particular if repeated matching takes place.
						不像
						
							QByteArrayMatcher
						
						, this class calculates the internal representation at
						
							compile-time
						
						, if your compiler supports C++14-level
						
constexpr
						
						(C++11 is not sufficient), so it can even benefit if you are doing one-off byte array matches.
					
						创建
						
							QStaticByteArrayMatcher
						
						通过调用
						
							qMakeStaticByteArrayMatcher
						
						(), passing it the C string literal you want to search for. Store the return value of that function in a
						
static const auto
						
						variable, so you don't need to pass the
						
N
						
						template parameter explicitly:
					
static const auto matcher = qMakeStaticByteArrayMatcher("needle");
Then call indexIn () on the QByteArray in which you want to search, just like with QByteArrayMatcher .
Since this class is designed to do all the up-front calculations at compile-time, it does not offer a setPattern() method.
注意: Qt 检测必要 C++ 14 编译器支持,通过特征测试推荐从 C++ 委员会标准文档 6 .
另请参阅 QByteArrayMatcher and QStringMatcher .
Searches the char string haystack , from byte position from (default 0, i.e. from the first byte), for the byte array pattern () that was set in the constructor.
Returns the position where the pattern () matched in haystack , or -1 if no match was found.
Searches the char string haystack , which has length hlen , from byte position from (default 0, i.e. from the first byte), for the byte array pattern () that was set in the constructor.
Returns the position where the pattern () matched in haystack , or -1 if no match was found.
Returns the byte array pattern that this byte array matcher will search for.
另请参阅 QByteArrayMatcher::setPattern ().
						返回
						
							QStaticByteArrayMatcher
						
						with the correct
						
N
						
						determined automatically from the
						
							pattern
						
						passed.
					
						To take full advantage of this function, assign the result to an
						
auto
						
						变量:
					
static const auto matcher = qMakeStaticByteArrayMatcher("needle");
该函数在 Qt 5.9 引入。