배열의 길이를 알아내려면 어떻게 해야 되나요?

배열에 원소가 몇 개나 들어갈 수 있는지 알아내려면 어떻게 해야 되나요?

실제로 제가 할당한 값이 몇 개인지가 아니라 몇 개가 들어갈 수 있는지를 알고 싶습니다.

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    C에서 쓰는 배열

    C스타일의 배열에서는 다음 방법으로 배열의 크기를 알아낼 수 있습니다. *포인터(동적 할당을 받는 등)에서는 쓸 수 없습니다.

    int a[7];
    std::cout << "Length of array = " << (sizeof(a)/sizeof(*a)) << std::endl;
    

    C++에서 쓰는 배열

    대부분의 container class에서는

    • size(): container에 있는 원소의 수
    • max_size(): container에 최대로 들어갈 수 있는 원소의 수

    메소드가 이미 정의되어 있습니다.

    std::array에서는 size()max_size()는 항상 동일합니다.

    #include <array>
    int main(){
        array<int, 7> myarr = {1,2,3,4,5};
        cout << myarr.size() << endl;
    }
    

    std::vector에서는 vector::size()로 현재 vector에 있는 원소의 수를 알아낼 수 있습니다.

    #include <vector>
    int main(){
        vector<int> myvector;
        myvector.insert(myvector.end(), 1);
        myvector.insert(myvector.end(), 2);
        myvector.insert(myvector.end(), 3);
        cout << myvector.size() << endl;
    }
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.