티스토리 뷰

노트

c++ vector의 [] operator 와 at

tose33 2022. 5. 10. 17:17

c++로 푼 PS 문제를 파이썬으로 푸는 과정에서 파이썬에서 boundary 에러가 났다.

그런데 c++로 푼 코드를 그대로 썼는데 왜 boundary exception이 났는지 이해가 안가서 배열의 크기같은것도 꼼꼼히 체크하다가 c++코드에서 문제점을 발견했는데, vector의 범위 밖을 참조하는데 아무런 에러가 나지 않았다. 

 

예를들어 vector의 크기가 3인데 v[5] 이런식으로 [] operator로  참조했는데 에러가 나지 않았는데, 

reference를 보니 vector의 [] operator는 boundary check를 하지않고, 범위 밖을 참조하게 되면 undefined result가 나타난다

boundary check를 하고싶다면 [] operator 대신 vector의 at 함수를 쓰면 된다. 

 

'노트' 카테고리의 다른 글

Java의 인터페이스  (0) 2022.06.06
java의 객체 관련 정리  (0) 2022.06.01
Amortized time complexity  (0) 2022.05.03
kotlin) Array<Int> vs IntArray  (0) 2022.04.28
꼬리 재귀 (Tail Recursion)  (0) 2022.04.07
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함