flat_multimap_replace

flat_multimap_replace (std::flat_multimap::replace — 내부 컨테이너 교체)

std::flat_multimap의 내부 적응 컨테이너(키 컨테이너와 매핑값 컨테이너)를 통째로 새 것으로 교체하는 멤버 함수예요. 이동(move) 방식으로 옮겨요.

출처: cppreference

본문

시그니처는 다음과 같아요.

void replace( key_container_type&& key_cont, mapped_container_type&& mapped_cont );
// (since C++23)

내부 컨테이너를 교체해요. 다음과 동등해요.

c.keys = std::move(key_cont);
c.values = std::move(mapped_cont);

다음 조건이 반드시 만족돼야 해요.

  • key_cont.size() == mapped_cont.size()true,
  • key_cont의 원소들이 비교 기준으로 정렬되어 있어야 해요. 그렇지 않으면 동작이 정의되지 않아요.

매개변수

  • key_cont: KeyContainer 타입의 정렬된 키 컨테이너. 내용물이 *this로 이동돼요.
  • mapped_cont: MappedContainer 타입의 매핑값 컨테이너. 내용물이 *this로 이동돼요.

복잡도

적응 컨테이너에 std::move를 적용하는 복잡도와 같아요.

예제

#include <cassert>
#include <flat_map>
int main()
{
    std::flat_multimap<int, double> map;
    std::vector<int> keys{1, 2, 3};
    std::vector<double> values{2.2, 3.3, 1.1};
    map.replace(std::move(keys), std::move(values));
    assert(map.size() == 3);
}

함께 보기

  • extract: 내부 컨테이너를 추출해요 (공개 멤버 함수)

더 알아보기 (Learn more)

cppreference