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

C++ STL list::push_back() 함수의 작동 원리와 사용법 총정리

이 글에서는 C++ STL에서 제공하는 list::push_back() 함수의 작동 방식, 문법, 실제 예제까지 자세히 살펴보겠습니다.

STL에서 리스트(List)란 무엇인가?

리스트는 시퀀스 내 임의의 위치에서 상수 시간(O(1))에 삽입과 삭제가 가능한 자료구조입니다. 내부적으로 이중 연결 리스트(doubly linked list)로 구현되어 있어 메모리가 연속적으로 할당되지 않아도 됩니다.

리스트는 배열(array), 벡터(vector), 덱(deque)과 비교했을 때 컨테이너 내 임의 위치에서 요소를 삽입, 추출, 이동하는 작업에서 훨씬 뛰어난 성능을 보여줍니다. 다만 인덱스를 통한 직접 접근은 느린 편입니다. 또한 리스트는 forward_list와 비슷하지만, forward_list는 단일 연결 리스트(singly linked list)로 구현되어 앞쪽 방향으로만 순회할 수 있다는 차이점이 있습니다.

list::push_back() 함수란?

list::push_back()은 C++ STL에 내장된 함수로, <list> 헤더 파일에 선언되어 있습니다. 이 함수는 리스트 컨테이너의 맨 뒤(끝)에 새로운 요소를 삽입하는 역할을 하며, 호출할 때마다 컨테이너의 크기가 1씩 증가합니다.

문법

list_name.push_back(ele);

이 함수는 매개변수를 하나만 받습니다. 바로 리스트 컨테이너(list_name)의 맨 뒤에 삽입하고자 하는 요소입니다.

반환값

이 함수는 아무 값도 반환하지 않습니다. 단순히 리스트 컨테이너에 요소를 삽입하는 기능만 수행합니다.

사용 예제

다음 코드는 push_back() 함수를 활용해 리스트에 요소를 삽입하고, 삽입 전후의 리스트 크기를 출력하는 예제입니다.

#include<bits/stdc++.h>
using namespace std;
int main(){
    // 리스트 생성
    list<int> myList;
    // 리스트의 초기 크기 출력
    cout<<"size of the list: "<<myList.size()<< endl;
    // 리스트에 요소 삽입
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    // 요소 삽입 후 리스트의 크기 출력
    cout<<"Size of the list after inserting elements: "<<myList.size();
    return 0;
}

실행 결과

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

Size of the list : 0
Size of the list after inserting elements: 3

처음 생성된 리스트의 크기는 0이지만, push_back() 함수로 세 개의 요소를 삽입한 후에는 크기가 3으로 증가한 것을 확인할 수 있습니다. 이처럼 push_back()은 리스트 끝에 손쉽게 요소를 추가할 수 있는 가장 기본적이고 자주 사용되는 함수입니다.