Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL list::emplace() 함수 완벽 가이드 – 문법, 매개변수, 예제 총정리

이 글에서는 C++에서 list의 emplace() 함수가 어떻게 동작하는지 자세히 알아보겠습니다.

list::emplace() 함수는 C++ 표준 템플릿 라이브러리(STL)의 일부로, 사용자가 지정한 특정 위치에 새로운 값을 삽입할 때 사용됩니다.

이 함수를 호출하려면 <list> 헤더 파일을 반드시 포함해야 합니다.

문법(Syntax)

List_Name.emplace(position, element)

매개변수(Parameters)

이 함수는 두 개의 매개변수를 받습니다.

  • position: 새로운 요소가 삽입될 위치를 나타냅니다.
  • value: 지정된 위치에 리스트에 삽입할 요소를 나타냅니다.

반환값(Return Value)

이 함수는 새로 삽입된 요소를 가리키는 반복자(iterator)를 반환합니다.

예제

Input: list<int> L = { 1,2,3 }
Output: 6 1 2 3

설명 − 위 예제에서는 int 타입의 값 1, 2, 3을 가지는 리스트 "L"을 생성했습니다. 그다음 emplace() 함수는 반복자를 반환하기 때문에, 이 반환값을 받을 auto 타입의 객체 "itr"를 선언했습니다. 첫 번째 인자에는 새 요소를 삽입할 위치인 리스트의 시작 위치(L.begin())를 지정했고, 두 번째 인자로는 추가할 새로운 값인 6을 전달했습니다. 그 결과 출력은 6 1 2 3이 됩니다.

프로그램 접근 방식

  • 먼저 int 타입의 리스트(예: "Lt")를 생성하고 값을 할당합니다.
  • auto 타입의 객체 "itr"를 생성하고, emplace() 함수를 호출하여 초기화합니다. "itr"는 emplace() 함수의 반환값을 받는 반복자 역할을 합니다.
  • 함수에 인자를 전달합니다. 첫 번째 인자는 Lt.end()로 리스트의 끝 위치를 선택하고, 두 번째 인자로는 임의의 값(예: 7)을 전달합니다.

알고리즘

Start
Step 1-> In function main()
    Initialize list<int> Lt={}
    Initialize auto itr=Lt.emplace(Lt.end(),7)
    Loop For itr=Lt.begin() and itr!=Lt.end() and itr++
    Print *itr
Stop

실제 코드 예제

#include <iostream>
#include<list>
using namespace std;
int main() {
    list<int> Lt = { 3,4,5 };
    auto itr = Lt.emplace(Lt.begin(),7);
    Lt.emplace(itr,6);
    cout << "The List is: ";
    for (itr = Lt.begin(); itr != Lt.end(); itr++)
    cout << *itr << " ";
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −

The List is: 6 7 3 4 5

코드 해설 − 먼저 {3, 4, 5} 값을 가진 리스트 Lt를 생성합니다. 첫 번째 emplace() 호출은 리스트의 시작 위치에 7을 삽입하고, 새로 삽입된 요소를 가리키는 반복자를 반환합니다. 두 번째 emplace() 호출은 반환받은 반복자 위치, 즉 7 앞에 6을 삽입합니다. 최종적으로 리스트는 6 7 3 4 5 순서로 정렬되어 출력됩니다.