Namespaces
Variants
Views
Actions

std::uninitialized_fill_n

From cppreference.com
< cpp‎ | memory
Revision as of 06:35, 3 August 2012 by P12 (Talk | contribs)

 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)



 
Defined in header <memory>
template< class ForwardIt, class Size, class T >
void uninitialized_fill_n( ForwardIt first, Size count, const T& value )

Copies the given value value to the first count elements in an uninitialized memory area beginning at first. The elements in the uninitialized area are constructed using copy constructor.

Contents

Parameters

first - the beginning of the range of the elements to initialize
count - number of elements to construct
value - the value to construct the elements with
Type requirements
-
ForwardIt must meet the requirements of LegacyForwardIterator.

Return value

Iterator to the element past the last element copied.

Complexity

Linear in count

Possible implementation

template< class ForwardIt, class Size, class T >
void uninitialized_fill_n(ForwardIt first, Size count
                          const T& value)
{
    typedef typename std::iterator_traits<ForwardIt>::value_type Value;
    for (; count > 0; ++first, --count) {
        ::new (static_cast<void*>(&*first)) Value(value);
    }
    return first;
}

Example

See also

Template:cpp/memory/dcl list uninitialized fill