set

Set a value

Synopsis

iterator set( string_view key, string_view value, ignore_case_param ic);

Declared in file <src/params_ref.cpp> at line 189

Description

This function performs one of two actions depending on the value of `this->contains( key, ic )`.

  • If key is contained in the view then one of the matching elements has its value changed to the specified value. The remaining elements with a matching key are erased. Otherwise,
  • If `key` is not contained in the view, then the function apppends the param `{ key, value }`.
  • All iterators are invalidated.

    Example

    url u( "?id=42&id=69" ); u.params().set( "id", "none" ); assert( u.params().count( "id" ) == 1 );

    Postconditions

    this->count( key, ic ) == 1 && this->find( key, ic )->value == value

    Complexity

    Linear in `this->url().encoded_query().size()`.

    Exception Safety

    Strong guarantee. Calls to allocate may throw.