2017-04-25 1 views
-1

중첩 벡터를 사용하여 놀고 있었고 임의의 요소를 출력하여 출력을 보았습니다. 범위를 벗어나면 오류가 발생하지 않는 것으로 나타났습니다. 단순히 값으로 0을 반환합니다.벡터가 범위를 벗어나면 출력으로 0을 제공합니까?

왜 이런가요?

인덱스를 기준으로 범위를 벗어난 요소를 호출 할 때마다 벡터 크기가 조정되고 0으로 초기화됩니까? 이 0 그냥 단순한 우연의 일치 인쇄 것으로,

#include <iostream> 
#include <vector> 


int main(){ 
    std::vector<std::vector<int>> matrix; 
    std::vector<int> temp; 
    temp.push_back(1); 
    temp.push_back(2); 
    matrix.push_back(temp); 
    std::cout << matrix[0][45] << std::endl; 

    return 0; 
} 

답변

1

당신은 정의되지 않은 동작을 발생하는 :

는 여기가 실행 코드입니다.

+0

고마워요! 어쨌든 제가 실수를하게 만들 수 있습니까? – Hadi

+0

@Hadi 경계를 확인하고 이에 따라 응답하십시오. – deW1

+1

@Hadi '[]] 대신'at()'를 사용하십시오 : – Justin

관련 문제