[#boost-urls-params_encoded_base-find_last-0d]
= xref:boost/urls/params_encoded_base/find_last-0d.adoc[boost::urls::params&lowbar;encoded&lowbar;base::find&lowbar;last]
:relfileprefix: ../../../
:mrdocs:

Find a matching key

== Synopsis

Declared in `&lt;https://www.github.com/boostorg/url/blob/develop/include/boost/url/params_encoded_base.hpp#L516[boost&sol;url&sol;params&lowbar;encoded&lowbar;base&period;hpp]&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:boost/urls/params_encoded_base/iterator.adoc[iterator]
find&lowbar;last(
    xref:boost/urls/params_encoded_base/iterator.adoc[iterator] before,
    xref:boost/urls/pct_string_view.adoc[pct&lowbar;string&lowbar;view] key,
    xref:boost/urls/ignore_case_param.adoc[ignore&lowbar;case&lowbar;param] ic = &lcub;&rcub;) const noexcept;
----

== Description

This function examines the parameters in the container to find a match for the specified key, which may contain percent escapes&period; The comparison is performed as if all escaped characters were decoded first&period;

The search starts prior to `before` and proceeds backwards until either the key is found or the beginning of the range is reached, in which case `end()` is returned&period;

== Example
[,cpp]
----
url_view u( "?First=John&Last=Doe" );

assert( u.encoded_params().find_last( "last" ) != u.encoded_params().find_last( "last", ignore_case ) );
----
== Complexity
Linear in `this&hyphen;&gt;buffer()&period;size()`&period;

== Return Value

an iterator to the param

== Parameters

[cols=2]
|===
| Name
| Description
| *before*
| One past the position to begin the search from&period; This can be `end()`&period;
| *key*
| The key to match&period; By default, a case&hyphen;sensitive comparison is used&period;
| *ic*
| An optional parameter&period; If the value xref:boost/urls/ignore_case.adoc[`ignore&lowbar;case`] is passed here, the comparison is case&hyphen;insensitive&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
