[#boost-urls-params_view]
= xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::params&lowbar;view
:relfileprefix: ../../
:mrdocs:

Non&hyphen;owning decoded query parameter view

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class &lsqb;&lsqb;&lowbar;&lowbar;visibility&lowbar;&lowbar;&rsqb;&rsqb; params&lowbar;view
    : public xref:boost/urls/params_base.adoc[params&lowbar;base]
----

== Description

This read&hyphen;only range interprets the query string of a URL as bidirectional key&sol;value pairs with percent&hyphen;decoding applied on access&period; It merely references the original character buffer&semi; callers must keep that buffer alive while the view is used&period;

== Example

[,cpp]
----
url_view u( "?first=John&last=Doe" );

params_view p = u.params();
----
Strings retrieved from the iterators are automatically percent&hyphen;decoded&period;

== Iterator Invalidation

Changes to the underlying character buffer can invalidate iterators which reference it&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:boost/urls/params_base.adoc[params&lowbar;base]`
| Decoded query parameter helper base
|===

== Types

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/params_view/iterator.adoc[`iterator`] 
| A Bidirectional iterator to a query parameter
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/params_base/const_iterator.adoc[`const&lowbar;iterator`] 
| A Bidirectional iterator to a query parameter
| xref:boost/urls/params_base/const_reference.adoc[`const&lowbar;reference`] 
| The reference type
| xref:boost/urls/params_base/difference_type.adoc[`difference&lowbar;type`] 
| A signed integer type used to represent differences&period;
| xref:boost/urls/params_base/reference.adoc[`reference`] 
| The reference type
| xref:boost/urls/params_base/size_type.adoc[`size&lowbar;type`] 
| An unsigned integer type to represent sizes&period;
| xref:boost/urls/params_base/value_type.adoc[`value&lowbar;type`] 
| The value type
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/params_view/2constructor-06.adoc[`params&lowbar;view`]         [.small]#[constructor]#
| Constructor
| xref:boost/urls/params_view/operator_assign.adoc[`operator&equals;`] 
| Assignment
| xref:boost/urls/params_base/begin.adoc[`begin`] 
| Return an iterator to the beginning
| xref:boost/urls/params_base/buffer.adoc[`buffer`] 
| Return the referenced character buffer&period;
| xref:boost/urls/params_base/contains.adoc[`contains`] 
| Return true if a matching key exists
| xref:boost/urls/params_base/count.adoc[`count`] 
| Return the number of matching keys
| xref:boost/urls/params_base/empty.adoc[`empty`] 
| Return true if there are no params
| xref:boost/urls/params_base/end.adoc[`end`] 
| Return an iterator to the end
| xref:boost/urls/params_base/find-0f.adoc[`find`] 
| Find a matching key
| xref:boost/urls/params_base/find_last-04b.adoc[`find&lowbar;last`] 
| Find a matching key
| xref:boost/urls/params_base/get_or.adoc[`get&lowbar;or`] 
| Return the value for a key or a fallback
| xref:boost/urls/params_base/size.adoc[`size`] 
| Return the number of params
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/params_base/max_size.adoc[`max&lowbar;size`] 
| Return the maximum number of characters possible
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:boost/urls/params_ref.adoc[boost::urls::params&lowbar;ref]`
| Mutable decoded query parameter proxy
| `xref:boost/urls/params_encoded_view.adoc[boost::urls::params&lowbar;encoded&lowbar;view]`
| Non&hyphen;owning encoded query parameter view
| `xref:boost/urls/url_view_base.adoc[boost::urls::url&lowbar;view&lowbar;base]`
| Common functionality for containers
|===


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