이 기사에서는 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