Przejdź do głównej zawartości

std::deque assign() method

// (1) Non const version only
void assign( size_type count, const T& value );

// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );

// (3) Non const version only
void assign( std::initializer_list<T> ilist );

Replaces the contents of the container with the contents of another.

  • (1) Replaces the contents with count copies of value value.

  • (2) Replaces the contents with copies of those in the range [ first, last ).

    Undefined behavior

    The behavior is undefined

    if either argument is an iterator into *this.

    This overload has the same effect as overload (1) if InputIt is an integral type.

(since C++11)

  • (3) Replaces the contents with the elements from the initializer list ilist.
Invalidation

All iterators, pointers and references to the elements of the container are invalidated. The past-the-end iterator is also invalidated.

Parameters

  • count - the new size of the container
  • value - the value to initialize elements of the container with
  • first, last - the range to copy the elements from
  • ilist - initializer list to copy the values from

Return value

(none)

Complexity

  • (1) Linear in count - O(count).
  • (2) Linear in distance between first and last - O(std::distance(first, last)).
  • (3) Linear in ilist.size() - O(ilist.size()).

Exceptions

(none)

Examples

Main.cpp
#include <deque>
#include <iostream>
#include <string>

int main()
{
std::deque<char> characters;

auto print_deque = [&](){
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};

characters.assign(5, 'a');
print_deque();

const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_deque();

characters.assign({'C', '+', '+', '1', '1'});
print_deque();
}
Output
a a a a a 
b b b b b b
C + + 1 1
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.

std::deque assign() method

// (1) Non const version only
void assign( size_type count, const T& value );

// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );

// (3) Non const version only
void assign( std::initializer_list<T> ilist );

Replaces the contents of the container with the contents of another.

  • (1) Replaces the contents with count copies of value value.

  • (2) Replaces the contents with copies of those in the range [ first, last ).

    Undefined behavior

    The behavior is undefined

    if either argument is an iterator into *this.

    This overload has the same effect as overload (1) if InputIt is an integral type.

(since C++11)

  • (3) Replaces the contents with the elements from the initializer list ilist.
Invalidation

All iterators, pointers and references to the elements of the container are invalidated. The past-the-end iterator is also invalidated.

Parameters

  • count - the new size of the container
  • value - the value to initialize elements of the container with
  • first, last - the range to copy the elements from
  • ilist - initializer list to copy the values from

Return value

(none)

Complexity

  • (1) Linear in count - O(count).
  • (2) Linear in distance between first and last - O(std::distance(first, last)).
  • (3) Linear in ilist.size() - O(ilist.size()).

Exceptions

(none)

Examples

Main.cpp
#include <deque>
#include <iostream>
#include <string>

int main()
{
std::deque<char> characters;

auto print_deque = [&](){
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};

characters.assign(5, 'a');
print_deque();

const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_deque();

characters.assign({'C', '+', '+', '1', '1'});
print_deque();
}
Output
a a a a a 
b b b b b b
C + + 1 1
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.