Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::vector<T,Allocator>::assign

      From cppreference.com
      <cpp‎ |container‎ |vector

      [edit template]
       
       
       
      std::vector
      Member types
      Member functions
      Non-member functions
      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)
      Deduction guides(C++17)
       
      void assign( size_type count,const T& value);
      (1)(constexpr since C++20)
      template<class InputIt>
      void assign( InputIt first, InputIt last);
      (2)(constexpr since C++20)
      void assign(std::initializer_list<T> ilist);
      (3)(since C++11)
      (constexpr since C++20)

      Replaces the contents of the container.

      1) Replaces the contents withcount copies of valuevalue.
      2) Replaces the contents with copies of those in the range[firstlast).

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

      (until C++11)

      This overload participates in overload resolution only ifInputIt satisfies the requirements ofLegacyInputIterator.

      (since C++11)
      Iffirst orlast is an iterator into*this, the behavior is undefined.
      3) Replaces the contents with the elements fromilist.

      All iterators (including theend() iterator) and all references to the elements are invalidated.

      Contents

      [edit]Parameters

      count - the new size of the container
      value - the value to initialize elements of the container with
      first, last - the pair of iterators defining the sourcerange of elements to copy
      ilist -std::initializer_list to copy the values from

      [edit]Complexity

      1) Linear incount.
      2) Linear in distance betweenfirst andlast.
      3) Linear inilist.size().

      [edit]Example

      The following code usesassign to add several characters to astd::vector<char>:

      Run this code
      #include <vector>#include <iostream>#include <string> int main(){std::vector<char> characters; auto print_vector=[&](){for(char c: characters)std::cout<< c<<' ';std::cout<<'\n';};     characters.assign(5,'a');    print_vector(); conststd::string extra(6,'b');    characters.assign(extra.begin(), extra.end());    print_vector();     characters.assign({'C','+','+','1','1'});    print_vector();}

      Output:

      a a a a ab b b b b bC + + 1 1

      Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 2209C++98the replacement operation was required to be implemented as
      erasing all existing elements followed by inserting the given elements
      removed the
      requirement

      [edit]See also

      assigns a range of values to the container
      (public member function)[edit]
      assigns values to the container
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/vector/assign&oldid=124716"

      [8]ページ先頭

      ©2009-2025 Movatter.jp