:relfileprefix: ../../../
[#boost-urls-params_encoded_base-count]

= xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/params_encoded_base.adoc[pass:[params_encoded_base]]::count


Return the number of matching keys


== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/params_encoded_base.hpp#L304[boost/url/params_encoded_base.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
xref:std.adoc[std]::size_t
count(
    xref:boost/urls/pct_string_view.adoc[pct_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 the number of
matches for the specified key,
which may contain percent escapes.
The comparison is performed as if all
escaped characters were decoded first.

=== Example
[,cpp]
----
assert( url_view( "?first=John&last=Doe" ).encoded_params().count( "first" ) == 1 );
----

=== Complexity

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

=== Exception Safety

Exceptions thrown on invalid input.



== Exceptions

|===
| Name | Thrown on

| `system_error`
| 
`key` contains an invalid percent-encoding.

|===



== 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.

|===




