array::empty
array::empty (비어 있는지 확인하기)
컨테이너에 원소가 없는지, 즉 begin() == end()인지 확인하는 멤버 함수예요. 상수 시간에 동작해요. C++11부터 있어요.
출처: cppreference
본문
empty()는 컨테이너에 원소가 없으면 true를 반환해요.
constexpr bool empty() const noexcept;
반환 값은 컨테이너가 비어 있으면 true, 아니면 false예요. 복잡도는 상수 시간이에요.
std::array는 크기가 컴파일 타임에 고정이라, 실행 중에 비어 있는지가 바뀌는 일은 없어요. N == 0인 0-길이 배열만 항상 비어 있죠. 그래서 empty()는 정적 크기 컨테이너에서 사실상 "N이 0인가"를 확인하는 셈이에요.
예를 들어보게요.
#include <array>
#include <iostream>
int main()
{
std::array<int, 4> numbers{3, 1, 4, 1};
std::array<int, 0> no_numbers;
std::cout << std::boolalpha;
std::cout << "numbers.empty(): " << numbers.empty() << '\n';
std::cout << "no_numbers.empty(): " << no_numbers.empty() << '\n';
}
출력은 각각 false와 true예요. std::vector 같은 가변 컨테이너에서는 원소를 지우고 나서 비어 있는지 확인할 때 자주 쓰지만, std::array에서는 0-길이 배열 처리 외에는 거의 쓰일 일이 없다고 봐도 돼요.