|
◆ erase() [3/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 the range [first; last) . The iterator first does not need to be dereferenceable if first == last : erasing an empty range is a no-op.
If called on a primitive type other than null , the resulting JSON value will be null .
- Parameters
-
[in] | first | iterator to the beginning of the range to remove |
[in] | last | iterator past the end of the range to remove |
- Returns
- Iterator following the last removed element. If the iterator second 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 iterators which does not belong to the current JSON value; example: "iterators do not fit current value" |
std::out_of_range | if called on a primitive type with invalid iterators (i.e., if first != begin() and last != end() ); example: "iterators out of range" |
- Complexity\n The complexity depends on the type:
- objects:
log(size()) + std::distance(first, last)
- arrays: linear in the distance between first and last, plus linear in the distance between last and 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
iterator end() noexcept returns an iterator to one past the last 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,8,16]
null
The example code above can be translated with g++ -std=c++11 -Isrc doc/examples/erase__IteratorType_IteratorType.cpp -o erase__IteratorType_IteratorType
- See also
- erase(IteratorType) – removes the element at a given position
-
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 4408 of file json.hpp.
|