void replace(container_type&& cont); // C++23
概要
値のコンテナを置き換える。
効果
flat_multiset
クラスが内部で保持している container_type
を c
とすると、以下と等価。
c = std::move(cont);
事前条件
cont
がkey_compare
に基づいてソートされていること。
計算量
cont
をムーブした計算量と同じ。
例
#include <algorithm>
#include <cassert>
#include <flat_set>
#include <iostream>
#include <string>
#include <utility>
int main()
{
std::vector<std::string> keys = {"Alice", "Bob", "Carol"};
// 事前条件の確認
assert(std::is_sorted(keys.begin(), keys.end()));
std::flat_multiset<std::string> fs;
std::cout << fs.size() << std::endl;
fs.replace(std::move(keys));
std::cout << fs.size() << std::endl;
std::cout << std::endl;
std::cout << "{" << std::endl;
for (const std::string& i: fs) {
std::cout << " " << i << "," << std::endl;
}
std::cout << "}" << std::endl;
}
xxxxxxxxxx
#include <algorithm>
#include <cassert>
#include <flat_set>
#include <iostream>
#include <string>
#include <utility>
int main()
{
std::vector<std::string> keys = {"Alice", "Bob", "Carol"};
// 事前条件の確認
assert(std::is_sorted(keys.begin(), keys.end()));
std::flat_multiset<std::string> fs;
std::cout << fs.size() << std::endl;
fs.replace(std::move(keys));
std::cout << fs.size() << std::endl;
std::cout << std::endl;
std::cout << "{" << std::endl;
for (const std::string& i: fs) {
std::cout << " " << i << "," << std::endl;
}
std::cout << "}" << std::endl;
}
出力
0
3
{
Alice,
Bob,
Carol,
}
バージョン
言語
- C++23
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??