// (1) iterator insert(const_iterator pos, const basic_json& val); iterator insert(const_iterator pos, basic_json&& val); // (2) iterator insert(const_iterator pos, size_type cnt, const basic_json& val); // (3) iterator insert(const_iterator pos, const_iterator first, const_iterator last); // (4) iterator insert(const_iterator pos, initializer_list_t ilist); // (5) void insert(const_iterator first, const_iterator last);
val into an array before iterator pos.cnt copies of val into an array before iterator pos.[first, last) into an array before iterator pos.ilist into an array before iterator pos.[first, last) into an object.For all cases where an element is added to an array, a reallocation can happen, in which case all iterators (including the end() iterator) and all references to the elements are invalidated. Otherwise, only the end() iterator is invalidated. Also, any iterator or reference after the insertion point will point to the same index, which is now a different value.
For ordered_json, also adding an element to an object can yield a reallocation which again invalidates all iterators and all references. Also, any iterator or reference after the insertion point will point to the same index, which is now a different value.
pos (in) : iterator before which the content will be inserted; may be the end() iterator
val (in) : value to insert
cnt (in) : number of copies of val to insert
first (in) : the start of the range of elements to insert
last (in) : the end of the range of elements to insert
ilist (in) : initializer list to insert the values from
val.pos if #!cpp cnt==0pos if #!cpp first==lastpos if ilist is emptyStrong exception safety: if an exception occurs, the original value stays intact.
type_error.309 if called on JSON values other than arrays; example: "cannot use insert() with string"invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current value"type_error.309 if called on JSON values other than arrays; example: "cannot use insert() with string"invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current value"type_error.309 if called on JSON values other than arrays; example: "cannot use insert() with string"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.210 if first and last do not belong to the same JSON value; example: "iterators do not fit"invalid_iterator.211 if first or last are iterators into container for which insert is called; example: "passed iterators may not belong to container"type_error.309 if called on JSON values other than arrays; example: "cannot use insert() with string"invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current value"type_error.309 if called on JSON values other than objects; example: "cannot use insert() with string"invalid_iterator.202 if first or last do not point to an object; example: "iterators first and last must point to objects"invalid_iterator.210 if first and last do not belong to the same JSON value; example: "iterators do not fit"pos and end of the container.cnt plus linear in the distance between pos and end of the container.#!cpp std::distance(first, last) plus linear in the distance between pos and end of the container.ilist.size() plus linear in the distance between pos and end of the container.O(N*log(size() + N)), where N is the number of elements to insert.??? example “Example (1): insert element into array”
The example shows how `insert()` is used. ```cpp --8<-- "examples/insert.cpp" ``` Output: ```json --8<-- "examples/insert.output" ```
??? example “Example (2): insert copies of element into array”
The example shows how `insert()` is used. ```cpp --8<-- "examples/insert__count.cpp" ``` Output: ```json --8<-- "examples/insert__count.output" ```
??? example “Example (3): insert a range of elements into an array”
The example shows how `insert()` is used. ```cpp --8<-- "examples/insert__range.cpp" ``` Output: ```json --8<-- "examples/insert__range.output" ```
??? example “Example (4): insert elements from an initializer list into an array”
The example shows how `insert()` is used. ```cpp --8<-- "examples/insert__ilist.cpp" ``` Output: ```json --8<-- "examples/insert__ilist.output" ```
??? example “Example (5): insert a range of elements into an object”
The example shows how `insert()` is used. ```cpp --8<-- "examples/insert__range_object.cpp" ``` Output: ```json --8<-- "examples/insert__range_object.output" ```