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

C++ STL list::empty()와 list::size() 함수 완벽 가이드

이 글에서는 C++ STL에서 제공하는 list::empty() 함수와 list::size() 함수의 동작 방식, 문법, 그리고 실제 예제를 자세히 살펴보겠습니다.

STL에서 리스트(List)란?

리스트는 시퀀스의 어느 위치에서든 상수 시간(constant time)에 삽입과 삭제를 수행할 수 있는 컨테이너입니다. 리스트는 이중 연결 리스트(doubly linked list)로 구현되어 있으며, 비연속적인 메모리 할당을 허용합니다. 따라서 배열(array), 벡터(vector), 덱(deque)보다 컨테이너 내 임의의 위치에서 요소를 삽입, 추출, 이동하는 작업에서 더 나은 성능을 보입니다.

다만 리스트는 요소에 직접 접근하는 속도가 느린 편입니다. 리스트는 forward_list와 유사하지만, forward_list 객체는 단일 연결 리스트(singly linked list)이므로 앞쪽 방향으로만 순회할 수 있다는 차이점이 있습니다.

list::empty()란 무엇인가?

list::empty()는 C++ STL에 내장된 함수로, 헤더 파일에 선언되어 있습니다. 이 함수는 리스트 컨테이너가 비어 있는지(크기가 0인지) 여부를 확인하는 데 사용됩니다.

문법

listname.empty()

반환 값

리스트가 비어 있으면 true를 반환하고, 비어 있지 않으면 false를 반환합니다.

예제

입력 List: 50 60 80 90
출력: False

입력 List: (빈 리스트)
출력: True

적용할 수 있는 접근 방식

  • 먼저 리스트를 선언합니다.

  • 그런 다음 리스트를 출력합니다.

  • 마지막으로 empty() 함수를 호출하여 결과를 확인합니다.

위의 접근 방식을 사용하면 리스트가 비어 있는지 간단히 확인할 수 있습니다. 또한 리스트에 요소를 추가하면 비어 있지 않은 리스트를 만들어 두 경우의 결과를 비교해 볼 수 있습니다.

예제 코드

// C++ 코드: STL에서 list empty() 함수의 동작을 보여주는 예제
#include <iostream>
#include <list>
using namespace std;

int main() {
    list<int> myList = { 55, 84, 38, 66, 67 };

    // 리스트 출력
    cout << "List: ";
    for (auto x = myList.begin(); x != myList.end(); ++x)
        cout << *x << " ";

    // empty() 함수를 사용하여 빈 리스트 여부 확인
    if (myList.empty()) {
        cout << "\nTrue";
    } else {
        cout << "\nFalse";
    }
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

List: 55 84 38 66 67
False

list::size() 함수란 무엇인가?

list::size()는 C++ STL에 내장된 함수로, 헤더 파일에 선언되어 있습니다. 이 함수는 리스트의 크기를 구하는 데 사용되며, 일반적으로 리스트에 포함된 요소의 개수를 알아낼 때 활용됩니다.

문법

listname.size()

반환 값

리스트에 포함된 요소의 개수를 반환합니다.

예제

입력 – List: 5 6 7 8 9 10
출력 – 6

입력 – W O N D E R S
출력 – 7

적용할 수 있는 접근 방식

  • 먼저 리스트를 선언합니다.

  • 그런 다음 리스트를 출력합니다.

  • 마지막으로 size() 함수를 사용하여 리스트의 크기를 출력합니다.

위의 접근 방식을 통해 리스트의 크기를 손쉽게 구할 수 있습니다.

예제 코드

// C++ 코드: STL에서 list size() 함수의 동작을 보여주는 예제
#include <iostream>
#include <list>
using namespace std;

int main() {
    list<char> myList = { 'M', 'A', 'R', 'C', 'H' };

    cout << "List: ";
    for (auto x = myList.begin(); x != myList.end(); ++x)
        cout << *x << " ";

    // size() 함수를 사용하여 리스트의 요소 개수 출력
    cout << "\nSize of List: " << myList.size();
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

List: M A R C H
Size of List: 5