|
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 = int64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator>
template<class InteratorType , typename std::enable_if< std::is_same< InteratorType, typename basic_json::iterator >::value orstd::is_same< InteratorType, typename basic_json::const_iterator >::value, int >::type = 0>
Removes the element specified by the range [first; last) . Invalidates iterators and references at or after the point of the erase, including the end() iterator. 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
-
- Exceptions
-
std::domain_error | if called on a null value |
std::domain_error | if called on iterators which does not belong to the current JSON value |
std::out_of_range | if called on a primitive type with invalid iterators (i.e., if first != begin() and last != end() ) |
- Complexity
- 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
- The example shows the result of erase for different JSON types.
9 json j_number_integer = 17;
10 json j_number_float = 23.42;
11 json j_object = {{ "one", 1}, { "two", 2}};
12 json j_array = {1, 2, 4, 8, 16};
13 json j_string = "Hello, world";
17 j_number_integer. erase(j_number_integer. begin(), j_number_integer. end());
18 j_number_float. erase(j_number_float. begin(), j_number_float. end());
24 std::cout << j_boolean << '\n';
25 std::cout << j_number_integer << '\n';
26 std::cout << j_number_float << '\n';
27 std::cout << j_object << '\n';
28 std::cout << j_array << '\n';
29 std::cout << j_string << '\n';
a class to store JSON values Definition: json.hpp:130
iterator end() returns an iterator to one past the last element Definition: json.hpp:3190
iterator begin() returns an iterator to the first element Definition: json.hpp:3130
iterator find(typename object_t::key_type key) find an element in a JSON object Definition: json.hpp:3052
namespace for Niels Lohmann Definition: json.hpp:55
InteratorType erase(InteratorType pos) remove element given an iterator Definition: json.hpp:2831
Output (play with this example online): null
null
null
{"one":1}
[1,8,16]
null
The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/erase__IteratorType_IteratorType.cpp -o erase__IteratorType_IteratorType
|