|
◆ erase() [4/4]
template<class IteratorType , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value or std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 0>
IteratorType nlohmann::basic_json::erase |
( |
IteratorType |
pos | ) |
|
|
inline |
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
-
type_error.307 | if called on a null value; example: "cannot use
erase() with null" |
invalid_iterator.202 | if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current
value" |
invalid_iterator.205 | if called on a primitive type with invalid iterator (i.e., any iterator which is not begin() ); example: "iterator
out of range" |
- Complexity
- 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
- The example shows the result of
erase() for different JSON types.
2 #include <nlohmann/json.hpp>
10 json j_number_integer = 17;
11 json j_number_float = 23.42;
12 json j_object = {{ "one", 1}, { "two", 2}};
13 json j_array = {1, 2, 4, 8, 16};
14 json j_string = "Hello, world";
17 j_boolean.erase(j_boolean.begin());
18 j_number_integer.erase(j_number_integer.begin());
19 j_number_float.erase(j_number_float.begin());
20 j_object.erase(j_object.find( "two"));
21 j_array.erase(j_array.begin() + 2);
22 j_string.erase(j_string.begin());
25 std::cout << j_boolean << '\n';
26 std::cout << j_number_integer << '\n';
27 std::cout << j_number_float << '\n';
28 std::cout << j_object << '\n';
29 std::cout << j_array << '\n';
30 std::cout << j_string << '\n';
Output (play with this example online): null
null
null
{"one":1}
[1,2,8,16]
null
The example code above can be translated withg++ -std=c++11 -Isingle_include 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 18250 of file json.hpp.
|