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
関連項目
| コンテナに値の範囲を代入します (パブリックメンバ関数) | |
| コンテナに値を代入します (パブリックメンバ関数) |