본문 바로가기
IT·컴퓨터

C++ Vector<> / begin() 구문 기초

by 기부전사 2024. 4. 2.

Vector 클래스의 begin() 함수는 벡터의 첫 번째 요소를 가리키는 반복자를 반환합니다.

이 함수는 STL의 벡터 컨테이너에서 제공하는 멤버 함수로, 벡터의 처음부터 순회를 시작할 때 사용됩니다.

반환되는 반복자는 벡터의 첫 번째 요소를 가리키며, 이를 통해 벡터 내의 요소에 접근하거나 순회할 수 있습니다.

예를 들어, 다음과 같이 벡터를 생성하고, begin() 함수를 사용하여 첫 번째 요소에 접근할 수 있습니다.

 

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // 첫 번째 요소에 접근
    int first_element = numbers.begin()[0];
    
    std::cout << "첫 번째 요소: " << first_element << std::endl;
    
    return 0;
}

 

위 코드에서는 numbers 벡터의 첫 번째 요소에 접근하여 값을 출력합니다.

 

begin() 함수를 통해 반환된 반복자를 [] 연산자로 접근하여 값을 가져올 수 있습니다.

 

벡터의 마지막 요소까지 접근하는 모습과 마지막 요소를 넘어가는 경우를 보여주는 코드는 다음과 같습니다.

 

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // 마지막 요소에 접근
    int last_element = numbers.end()[-1];
    
    std::cout << "마지막 요소: " << last_element << std::endl;
    
    // 마지막 요소를 넘어가는 경우
    int out_of_range = numbers.end()[1]; // 컴파일 오류 발생
    
    return 0;
}

 

위 코드에서는 numbers 벡터의 마지막 요소에 접근하여 값을 출력합니다.

 

end() 함수를 통해 반환된 반복자를 [] 연산자로 접근할 때, -1을 사용하면 마지막 요소에 접근할 수 있습니다.

 

마지막 요소를 넘어가는 경우에는 컴파일 오류가 발생합니다.

 

end() 함수를 통해 반환된 반복자는 벡터의 마지막 요소 다음을 가리키기 때문에,

 

이를 [] 연산자로 접근하면 범위를 벗어난 접근이 되어 오류가 발생합니다.

 

따라서, 벡터의 마지막 요소를 넘어가는 경우에는 반복자를 사용하여 순회를 종료하거나,

 

예외 처리를 통해 오류를 처리해야 합니다.

 

반복자를 순회하여 벡터의 모든 요소를 접근하는 코드는 다음과 같습니다.

 

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // 반복자를 사용하여 순회
    for (auto it = numbers.begin(); it != numbers.end(); ++it) {
        std::cout << *it << " ";
    }
    
    std::cout << std::endl;
    
    return 0;
}

 

위 코드에서는 numbers 벡터의 모든 요소를 순회하기 위해 for 루프를 사용합니다.

 

auto 키워드를 사용하여 반복자의 타입을 자동으로 추론하고,

 

begin() 함수와 end() 함수를 사용하여 순회 범위를 지정합니다.

 

루프 내에서는 * 연산자를 사용하여 반복자가 가리키는 요소에 접근하고, 이를 출력합니다.

 

이렇게 반복자를 사용하여 순회하면, 벡터의 모든 요소를 접근할 수 있습니다.

 
반응형