|
◆ erase() [4/4]
template< template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE= void > class JSONSerializer = adl_serializer>
Removes the element specified by iterator pos. The iterator pos must be valid and dereferenceable. Thus the end() iterator (which is valid, but is not dereferenceable) cannot be used as a value for pos.
If called on a primitive type other than null , the resulting JSON value will be null .
- Parameters
-
[in] | pos | iterator to the element to remove |
- Returns
- Iterator following the last removed element. If the iterator pos refers to the last element, the
end() iterator is returned.
- Template Parameters
-
- Postcondition
- Invalidates iterators and references at or after the point of the erase, including the
end() iterator.
- Exceptions
-
std::domain_error | if called on a null value; example: "cannot
use erase() with null" |
std::domain_error | if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current value" |
std::out_of_range | if called on a primitive type with invalid iterator (i.e., any iterator which is not begin() ); example: "iterator
out of range" |
- Complexity\n The complexity depends on the type:
- objects: amortized constant
- arrays: linear in distance between pos and the end of the container
- strings: linear in the length of the string
- other types: constant
- Example\n The example shows the result of
erase() for different JSON - types.
IteratorType erase(IteratorType pos) remove element given an iterator
iterator begin() noexcept returns an iterator to the first element
static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >()) explicitly create an array from an initializer list
iterator find(typename object_t::key_type key) find an element in a JSON object
a class to store JSON values
basic_json<> json default JSON class
Output (play with this example online):
null
null
null
{"one":1}
[1,2,8,16]
null
The example code above can be translated with g++ -std=c++11 -Isrc doc/examples/erase__IteratorType.cpp -o erase__IteratorType
- See also
- erase(IteratorType, IteratorType) – removes the elements in the given range
-
erase(const typename object_t::key_type&) – removes the element from an object at the given key
-
erase(const size_type) – removes the element from an array at the given index
- Since
- version 1.0.0
Definition at line 4301 of file json.hpp.
|