C++ multiset erase()C++ Multimultiset erase() function is used to remove either a single element associated with given key or a range of elements ([first, last)) from the multiset container. Hence, the size will be reduced by the number of elements removed. SyntaxParameterposition: Iterator pointing to an element to be removed from the container. val: Value to be removed from the multiset. first: Beginning of the range to erase. last: End of the range to erase. Return valueThe erase() function returns an iterator that point to the next element of the deleted element or returns the number of deleted elements. Complexityerase(position): Amortized constant. erase (val): Logarithmic in container size. erase(first,last): Linear in the distance between first and last of the container. Iterator validityIterators, references and the pointers pointing to elements removed by the function are invalidated.All other iterators, pointers and references keep their validity. Data RacesThe container is modified. The elements removed are modified. Iterating ranges in the container is not safe although concurrently accessing other elements is safe. Exception SafetyThis function does not throw exception. If an invalid range or position is specified, it causes undefined behavior. Example 1Let's see the simple example to erase the element by the iterator. Output: Before erasing the element: 10 20 20 30 After erasing the element: 10 20 20 30 In the above example, element is erased by the iterator 'it'. Example 2Let's see a simple example to erase the element of the multiset with the given key value: Output: Before erasing the element: 10 10 20 30 30 40 After erasing the element: 10 10 20 40 In the above example, erase(value) function uses the value 30 from the multiset. Example 3Let's see a simple example to erase the element by the given range: Output: Before erasing the element are: Size is: 3 10 20 30 After erasing the element are: Size is: 0 In the above example, erase(first, last) function is used to erase the element with the given range i.e. begin to end. Example 4Let's see a simple example to erase all the odd numbers from the multiset: Output: After erasing odd numbers, elements are: 2, 4, 4, 6, 8, 10, 10, 12, In the above example, all the odd numbers has been erased and displaying even numbers. Example 5Let's see another example: Output: Starting data of multiset s1 is: [Bob] [Bob] [Rob] [Rob] [Robert] size() == 5 After the 2nd element is deleted, the multiset s1 is: [Bob] [Rob] [Rob] [Robert] size() == 4 Starting data of multiset s2 is: [growl] [meow] [nikita] [nikita] [yellow] size() == 5 After the middle elements are deleted, the multiset s2 is: [growl] [yellow] size() == 2 Starting data of multiset s3 is: [B] [C] [C#] [D] [D#] [E] [E] [E#] [E#] [F] [F#] [G] [G#] size() == 13 The number of elements removed from s3 is: 2. After the element with a key of "E#" is deleted, the multiset s3 is: [B] [C] [C#] [D] [D#] [E] [E] [F] [F#] [G] [G#] size() == 11
Next TopicC++ multiset
|