ENH: added HashTable count, filter and generalized toc methods
- Generalized means over filtering table entries based on their keys, values, or both. Either filter (retain), or optionally prune elements that satisfy the specified predicate. filterKeys and filterValues: - Take a unary predicate with the signature bool operator()(const Key& k); - filterEntries: Takes a binary predicate with the signature bool operator()(const Key& k, const T& v); == The predicates can be normal class methods, or provide on-the-fly using a C++ lambda. For example, wordRes goodFields = ...; allFieldNames.filterKeys ( [&goodFields](const word& k){ return goodFields.match(k); } ); Note that all classes that can match a string (eg, regExp, keyType, wordRe, wordRes) or that are derived from a Foam::string (eg, fileName, word) are provided with a corresponding bool operator()(const std::string&) that either performs a regular expression or a literal match. This allows such objects to be used directly as a unary predicate when filtering any string hash keys. Note that HashSet and hashedWordList both have the proper operator() methods that also allow them to be used as a unary predicate. - Similar predicate selection with the following: * tocKeys, tocValues, tocEntries * countKeys, countValues, countEntries except that instead of pruning, there is a simple logic inversion.
Showing
- applications/test/HashTable/Test-hashTable.C 91 additions, 0 deletionsapplications/test/HashTable/Test-hashTable.C
- src/OpenFOAM/containers/HashTables/HashSet/HashSet.C 14 additions, 6 deletionssrc/OpenFOAM/containers/HashTables/HashSet/HashSet.C
- src/OpenFOAM/containers/HashTables/HashSet/HashSet.H 43 additions, 6 deletionssrc/OpenFOAM/containers/HashTables/HashSet/HashSet.H
- src/OpenFOAM/containers/HashTables/HashTable/HashTable.C 232 additions, 7 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTable.C
- src/OpenFOAM/containers/HashTables/HashTable/HashTable.H 130 additions, 8 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTable.H
- src/OpenFOAM/containers/HashTables/HashTable/HashTableCore.C 7 additions, 7 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTableCore.C
- src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableCore.C 7 additions, 7 deletions...ntainers/HashTables/StaticHashTable/StaticHashTableCore.C
- src/OpenFOAM/primitives/strings/wordRes/wordRes.H 1 addition, 1 deletionsrc/OpenFOAM/primitives/strings/wordRes/wordRes.H
Please register or sign in to comment