最終更新日時(UTC):
が更新

履歴 編集

function
<flat_set>

std::flat_multiset::replace

void replace(container_type&& cont);  // C++23

概要

値のコンテナを置き換える。

効果

flat_multiset クラスが内部で保持している container_typec とすると、以下と等価。

c = std::move(cont);

事前条件

  • contkey_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;
}

出力

0
3

{
  Alice,
  Bob,
  Carol,
}

バージョン

言語

  • C++23

処理系