A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../../cpp/container/inplace_vector/try_append_range.html below:

std::inplace_vector<T,N>::try_append_range - cppreference.com

Appends copies of initial elements in rg before end(), until all elements are inserted or the internal storage is exhausted (i.e. size() == capacity() is true).

All iterators and references remain valid. The end() iterator is invalidated.

Each iterator in rg is dereferenced at most once.

[edit] Parameters [edit] Return value

An iterator pointing to the first element of rg that was not inserted into *this, or ranges::end(rg) if no such element exists.

[edit] Complexity

Linear in the number of elements inserted.

[edit] Exceptions

Any exception thrown by initialization of inserted element.

inplace_vector provides the basic exception safety guarantee, i.e., all elements of the container before the call are preserved, and all already inserted elements (before the exception, if any) are also preserved.

[edit] Notes [edit] Example
#include <cassert>
#include <initializer_list>
#include <inplace_vector>
 
int main()
{
    using I = std::inplace_vector<int, 8>;
    auto nums = I{1, 2, 3};
    const auto rg = {-1, -2, -3};
 
    auto it = nums.try_append_range(rg);
    assert(nums.size() == 6);
    assert((nums == I{1, 2, 3, -1, -2, -3}));
    assert(it == rg.end());
 
    it = nums.try_append_range(rg);
    assert(nums.size() == 8);
    assert((nums == I{1, 2, 3, -1, -2, -3, -1, -2}));
    assert(it == rg.begin() + 2);
}
[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4