:relfileprefix: ../../../
[#boost-urls-params_base-find]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/params_base.adoc[pass:[params_base]]::find

  


Find a matching key



=== Synopsis
  

[source,cpp,subs="verbatim,macros,-callouts"]
----
xref:boost/urls/params_base/iterator.adoc[iterator]
xref:boost/urls/params_base/find-09.adoc[pass:[find]](
    core::string_view key,
    xref:boost/urls/ignore_case_param.adoc[ignore_case_param] ic = = {}) const noexcept;
----

[source,cpp,subs="verbatim,macros,-callouts"]
----
xref:boost/urls/params_base/iterator.adoc[iterator]
xref:boost/urls/params_base/find-04.adoc[pass:[find]](
    xref:boost/urls/params_base/iterator.adoc[iterator] from,
    core::string_view key,
    xref:boost/urls/ignore_case_param.adoc[ignore_case_param] ic = = {}) const noexcept;
----
  
=== Description


This function examines the parameters
in the container to find a match for
the specified key.
The comparison is performed as if all
escaped characters were decoded first.




The search starts from the first param
and proceeds forward until either the
key is found or the end of the range is
reached, in which case `end()` is
returned.
[,cpp]
----
assert( (*url_view( "?first=John&last=Doe" ).params().find( "First", ignore_case )).value == "John" );
----
[,cpp]
----
return this->find( this->begin(), key, ic );
----

=== Linear in `this-&gt;buffer().size()`.



=== Return Value


an iterator to the param



=== Parameters

|===
| Name | Description 

| *key*
| 
The key to match.
By default, a case-sensitive
comparison is used.

| *ic*
| 
An optional parameter. If
the value
xref:boost/urls/ignore_case.adoc[ignore_case]
is passed
here, the comparison is
case-insensitive.

| *from*
| 
The position to begin the
search from. This can be `end()`.

|===




