mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-15 01:46:46 +00:00
Support/ADT/StringRef: Add find_last_of.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120495 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
61db62990b
commit
63c133b67d
@ -256,6 +256,18 @@ namespace llvm {
|
|||||||
/// Note: O(size() + Chars.size())
|
/// Note: O(size() + Chars.size())
|
||||||
size_type find_first_not_of(StringRef Chars, size_t From = 0) const;
|
size_type find_first_not_of(StringRef Chars, size_t From = 0) const;
|
||||||
|
|
||||||
|
/// find_last_of - Find the last character in the string that is \arg C, or
|
||||||
|
/// npos if not found.
|
||||||
|
size_type find_last_of(char C, size_t From = npos) const {
|
||||||
|
return rfind(C, From);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// find_last_of - Find the last character in the string that is in \arg C,
|
||||||
|
/// or npos if not found.
|
||||||
|
///
|
||||||
|
/// Note: O(size() + Chars.size())
|
||||||
|
size_type find_last_of(StringRef Chars, size_t From = npos) const;
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
/// @name Helpful Algorithms
|
/// @name Helpful Algorithms
|
||||||
/// @{
|
/// @{
|
||||||
|
@ -200,6 +200,21 @@ StringRef::size_type StringRef::find_first_not_of(StringRef Chars,
|
|||||||
return npos;
|
return npos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// find_last_of - Find the last character in the string that is in \arg C,
|
||||||
|
/// or npos if not found.
|
||||||
|
///
|
||||||
|
/// Note: O(size() + Chars.size())
|
||||||
|
StringRef::size_type StringRef::find_last_of(StringRef Chars,
|
||||||
|
size_t From) const {
|
||||||
|
std::bitset<1 << CHAR_BIT> CharBits;
|
||||||
|
for (size_type i = 0; i != Chars.size(); ++i)
|
||||||
|
CharBits.set((unsigned char)Chars[i]);
|
||||||
|
|
||||||
|
for (size_type i = min(From, Length) - 1, e = -1; i != e; --i)
|
||||||
|
if (CharBits.test((unsigned char)Data[i]))
|
||||||
|
return i;
|
||||||
|
return npos;
|
||||||
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// Helpful Algorithms
|
// Helpful Algorithms
|
||||||
|
Loading…
x
Reference in New Issue
Block a user