Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL의 list::emplace_front() 및 list::emplace_back()

<시간/>

이 기사에서는 C++ STL에서 list::emplace_front() 및 list::emplace_back() 함수의 작동, 구문 및 예제에 대해 논의할 것입니다.

STL의 목록이란 무엇입니까?

목록은 순서대로 어디에서나 일정한 시간 삽입 및 삭제를 허용하는 데이터 구조입니다. 목록은 이중 연결 목록으로 구현됩니다. 목록은 비연속적인 메모리 할당을 허용합니다. 목록은 배열, 벡터 및 데크보다 컨테이너의 모든 위치에서 요소의 삽입 추출 및 이동을 더 잘 수행합니다. 목록에서 요소에 대한 직접 액세스는 느리고 목록은 forward_list와 비슷하지만 순방향 목록 개체는 단일 연결 목록이며 앞으로만 반복될 수 있습니다.

목록::emplace_front()는 무엇입니까?

list::emplace_front()는 헤더 파일에 선언된 C++ STL의 내장 함수입니다. emplace_front()는 목록 컨테이너의 시작 부분에 요소를 배치(삽입)하는 데 사용됩니다. 컨테이너가 비어 있으면 첫 번째 위치에 있는 요소를 푸시하고 해당 요소가 첫 번째 요소가 되고 컨테이너에 미리 요소가 있는 경우 함수는 전달된 요소를 맨 앞으로 삽입하고 첫 번째 위치에 있는 기존 요소를 삽입합니다. 두 번째 요소가 됩니다. 이 함수는 컨테이너의 크기를 1만큼 증가시킵니다.

구문

listname.emplace_front (const value_type& element1);
listname.emplace_front (value_type&& element1);

매개변수

이 함수는 배치/삽입될 1개의 요소만 허용합니다.

반환 값

이 함수는 아무 것도 반환하지 않습니다.

예시

Input: list<int> mylist = {1, 2, 3, 4};
mylist.emplace_front(0)
Output:
List elements are = 0 1 2 3 4

예시

#include <iostream>
#include <list>
using namespace std;
int main(){
   list<int> List;
   List.emplace_front(10);
   List.emplace_front(20);
   List.emplace_front(30);
   List.emplace_front(40);
   List.emplace_front(50);
   List.emplace_front(60);
      cout<<"Elements are : ";
   for(auto i = List.begin(); i!= List.end(); ++i)
      cout << ' ' << *i;
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Elements are : 60 50 40 30 20 10

목록::emplace_back()은 무엇입니까?

list::emplace_back()은 헤더 파일에 선언된 C++ STL의 내장 함수입니다. emplace_back()은 목록 컨테이너의 뒤쪽이나 끝에 요소를 배치(삽입)하는 데 사용됩니다. 컨테이너가 비어 있으면 단순히 요소를 삽입하고 컨테이너에 요소가 있는 경우 컨테이너의 크기는 1이 됩니다. 함수는 전달된 요소를 목록 컨테이너의 끝에 삽입합니다. 이 함수는 컨테이너의 크기를 1만큼 증가시킵니다.

구문

listname.emplace_back(const value_type& element1);
listname.emplace_back(value_type&& element1);

매개변수

이 함수는 배치/삽입될 1개의 요소만 허용합니다.

반환 값

이 함수는 아무 것도 반환하지 않습니다.

예시

Input: list<int> list1 = {1, 2, 3, 4};
   list1.emplace_back(5);
Output: List: 1 2 3 4 5

예시

#include <iostream>
#include <list>
using namespace std;
int main(){
   list<int> List;
   List.emplace_back(10);
   List.emplace_back(20);
   List.emplace_back(30);
   List.emplace_back(40);
   List.emplace_back(50);
   List.emplace_back(60);
   cout<<"elements are : ";
   for(auto i=List.begin(); i!= List.end(); ++i)
      cout << ' ' << *i;
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Elements are : 10 20 30 40 50 60