◐ Shell
clean mode source ↗

std::vector<T,Allocator>::assign - cppreference.com

提供: cppreference.com

<tbody> </tbody>

void assign( size_type count, const T& value );

(1)

template< class InputIt > void assign( InputIt first, InputIt last );

(2)

void assign( std::initializer_list<T> ilist );

(3) (C++11以上)

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

1) 内容を値 value のコピー count 個で置き換えます。

2) 内容を範囲 [first, last) の要素のコピーで置き換えます。 いずれかの引数が *this 内を指すイテレータの場合、動作は未定義です。

このオーバーロードは、InputIt が整数型の場合、オーバーロード (1) と同じ効果を持ちます。 (C++11未満)
このオーバーロードは、InputItLegacyInputIterator を満たす場合にのみ、オーバーロード解決に参加します。 (C++11以上)

3) 内容を初期化子リスト ilist の要素で置き換えます。

コンテナの要素へのイテレータ、ポインタ、参照はすべて無効化されます。 終端イテレータも無効化されます。

引数

count - コンテナの新しいサイズ
value - コンテナの要素の初期化元の値
first, last - 要素のコピー元の範囲
ilist - 値のコピー元の初期化子リスト

計算量

1) count に比例。

2) firstlast の距離に比例。

3) ilist.size() に比例。

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

#include <vector>
#include <iostream>
 
int main()
{
    std::vector<char> characters;
 
    characters.assign(5, 'a');

    for (char c : characters) {
        std::cout << c << '\n';
    } 

    return 0;
}

出力:

関連項目