Namespaces
Variants

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

ja.cppreference.net から

 
 
 
 
void assign( size_type count, const T& value );
(1) (since C++26)
template< class InputIt >
void assign( InputIt first, InputIt last );
(2) (since C++26)
void assign( std::initializer_list<T> ilist );
(3) (since C++11)

コンテナの内容を置き換えます。

1)内容を count 個の value value.
2)内容を範囲 [first, last) 内の要素のコピーで置き換えます。
引数のいずれかが *this へのイテレータである場合、動作は未定義です。 このオーバーロードは、InputIt が LegacyInputIterator を満たす場合にのみオーバーロード解決に参加します。
3)内容を ilist の要素で置き換えます。


パラメータ

count - コンテナの新しいサイズ
value - コンテナの要素を初期化する値
first, last - コピー元の範囲を定義するイテレータのペア 範囲 のコピーする要素
ilist - std::initializer_list から値をコピーする

計算量

1) count に対して線形。
2) first と last の間の距離に対して線形。
3) ilist.size() に対して線形。

例

以下のコードは assign を使用して、std::hive<char> に複数の文字を追加します:

#include <hive>
#include <iostream>
#include <string>

int main()
{
    std::hive<char> characters;
    
    auto print_hive = [&]()
    {
        for (char c : characters)
            std::cout << c << ' ';
        std::cout << '\n';
    };
    
    characters.assign(5, 'a');
    print_hive();
    
    const std::string extra(6, 'b');
    characters.assign(extra.begin(), extra.end());
    print_hive();
    
    characters.assign({'C', '+', '+', '2', '6'});
    print_hive();
}

出力:

a a a a a
b b b b b b
C + + 2 6

関連項目

コンテナに値の範囲を代入します
(パブリックメンバ関数)
コンテナに値を代入します
(パブリックメンバ関数)