home | help
std::basic_...find_last_of(3)  C++ Standard Libary std::basic_...find_last_of(3)

NAME
     std::basic_string::find_last_of - std::basic_string::find_last_of

Synopsis
	size_type  find_last_of(  const basic_string& str,	   (1) (noexcept
     since C++11)
				size_type pos = npos ) const;	      (constexpr
     since C++20)
	size_type find_last_of( const CharT* s,
				size_type  pos, size_type count ) (2) (constexpr
     since C++20)
	const;
	size_type find_last_of( const CharT* s, size_type pos =  (3)  (constexpr
     since C++20)
	npos ) const;
	size_type  find_last_of(  CharT ch, size_type pos = npos ) (4) (noexcept
     since C++11)
	const;							      (constexpr
     since C++20)
	template< class StringViewLike >

	size_type							  (since
     C++17)
	    find_last_of( const StringViewLike& t,		 (5)  (constexpr
     since C++20)

			  size_type pos = npos ) const
	noexcept(/* see below */);

	Finds the last character equal to one of characters in the given charac-
     ter sequence.
	The  exact  search algorithm is not specified. The search considers only
     the range
	[0, pos]. If none of the characters in the given character  sequence  is
     present in
	the range, npos will be returned.

	1) Finds the last character equal to one of characters in str.
	2)  Finds the last character equal to one of characters in range [s, s +
     count). This
	range can include null characters.
	If [s, s + count) is not a valid range, the behavior is undefined.
	3) Finds the last character equal to  one  of  characters  in  character
     string pointed
	to  by s. The length of the string is determined by the first null char-
     acter using
	Traits::length(s).
	If [s, s + Traits::length(s)) is not a valid range, the behavior is  un-
     defined.
	4) Finds the last character equal to ch.
	5)  Implicitly	converts  t  to  a  string  view  sv  as  if by std::ba-
     sic_string_view<CharT,
	Traits> sv = t;, then finds the last character equal to one  of  charac-
     ters in sv.
	This overload participates in overload resolution only if
	std::is_convertible_v<const StringViewLike&,
			      std::basic_string_view<CharT, Traits>> is true and
	std::is_convertible_v<const StringViewLike&, const CharT*> is false.

	In all cases, equality is checked by calling Traits::eq.

Parameters
	str   - string identifying characters to search for
	pos   - position at which the search is to finish
	count - length of character string identifying characters to search for
	s      -  pointer to a character string identifying characters to search
     for
	ch    - character to search for
	t     - object (convertible to std::basic_string_view) identifying char-
     acters to
		search for

Return value
	Position of the found character or npos if no such character is found.

Exceptions
	1,4) Throws nothing.
	5)
	noexcept specification:
	noexcept(std::is_nothrow_convertible_v<const	    T&, 	std::ba-
     sic_string_view<CharT,
	Traits>>)

	If  an	exception  is thrown for any reason, this function has no effect
     (strong
	exception safety guarantee).

Example
     // Run this code

      #include <iostream>
      #include <string>

      int main()
      {
	  const std::string path = "/root/config";
	  auto const pos = path.find_last_of('/');
	  const auto leaf = path.substr(pos + 1);

	  std::cout << leaf << '\n';
      }

Output:
      config

	Defect reports

	The following behavior-changing defect	reports  were  applied	retroac-
     tively to
	previously published C++ standards.

	   DR	  Applied  to	      Behavior as published		 Correct
     behavior
	LWG 141  C++98	    overload (1) could	only  return  npos   the  search
     range is
			    if	pos >= size()			  [0, size()) in
     this case
	LWG 847  C++98	    there was no exception  safety	   added  strong
     exception
			    guarantee				  safety guaran-
     tee
	LWG 2064 C++11	    overloads (3,4) were noexcept	 removed
	LWG 2946 C++17	    overload (5) caused ambiguity in	 avoided by mak-
     ing it a
			    some cases				 template
		 C++11	    noexcept for overloads (4,5) were
	P1148R0  C++17	    accidentally dropped by		 restored
			    LWG2064/LWG2946

See also
	find		  finds the first occurrence of the given substring
			  (public member function)
	rfind		  find the last occurrence of a substring
			  (public member function)
	find_first_of	  find first occurrence of characters
			  (public member function)
	find_first_not_of find first absence of characters
			  (public member function)
	find_last_not_of  find last absence of characters
			  (public member function)
			  find last occurrence of characters
	find_last_of	     (public	 member     function	 of	std::ba-
     sic_string_view<CharT,Traits>)

Category:
	  * conditionally noexcept

http://cppreference.com 	   2024.06.10	   std::basic_...find_last_of(3)

home | help