프로그래밍

C++ STL list 관련 질문.

 

std::list<data_type> nlist1;

 

이렇게 list 자료구조로 nlist1 선언하고 값을 넣은 후에.

 

std::list<data_type>::literator lter_list =std::prev(nlist1.begin());

 

이렇게 코드작성하면 무조건 오류걸리는 거지??? 

 

list 구조에서 맨앞에 prev에 위치하는 element가  없기 때문인걸로 알고 있는데. 내가 맞는건지 궁금함.

 

nlist 1 : [begin] <->[begin+1]<-> [begin+2]<-> ... <->[end-1]<-> [end]

         

            prev<-> [begin+1] <->next   

 

[begin+1]의 prev = [begin] , next = [begin+2]

 

[begin]의 prev는 존재 x 하므로 위 코드 작성시 오류 발생하는거 맞지?
 

어떤 경우에도 오류가 발생하는 거지??

begin앞에 prev element는 없으니깐!!

6개의 댓글

구현 방식에 따라 다를것 같은데 따로 처리를 안해줬을 것 같음.

0
2021.04.18
@느그본체만수무강

따로 처리를 안 해줬다는게 무슨말임??

 

비주얼스튜디오 2019에서 사용하고, list.h에서 가져온 list template libarary인데.

 

환경에 따라서 다르려나?

0
@아임니더

컴파일러마다 구현 방식이 조금씩 다를 수 있음.

STL이 어느 컴파일러나 동일한 코드로 만드는게 아닌걸로 알고 있음.

다만 그럼에도 저 부분은 처리가 안 되어 있을 경우를 상정하여 무조건 문제가 발생한다고 생각하고 반드시 예외처리를 해줘야 한다는 거임.

0
2021.04.18
@느그본체만수무강

컴파일러 마다 다르게 구현될 수 있다니 신기하네.

 

Standard Template Libaray라는 명칭인데, 컴파일러마다 다를줄이야... 답변기다리는 동안 좀더 찾아봐야겠구만..

 

ㅇ답변고마워고

0
2021.04.19
@아임니더

표준은 함수 이름이랑 파라미터 타입같은거만 펴준이고 이상한짓하면 다 다르게동작함

0
2021.04.19

그런 Undefined Behavior(UB)은 오류를 뿜을 수도 있고, 뭔가 작동은 하는데 이상하게 작동할 수도 있음(가장 디버깅이 어려운 케이스).

그리고 이런 질문은 앵간하면 스택오버 플로우 한번 찾아보는게 훨씬 빠를걸.

https://stackoverflow.com/questions/37584646/validity-of-stdprev-and-stdnext-for-stdlist

https://stackoverflow.com/questions/25263676/is-it-safe-to-use-stdprevvector-begin-or-stdnextvector-begin-1-lik

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180604 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 1 잠적자 0 1 시간 전 70
180603 [잡담] PC방에선 무선이어폰 못쓰나? 1 급병신미 0 2 시간 전 79
180602 [컴퓨터] 모니터 이거 괜찮나여? 4 햄보칼쑤가없엉! 0 2 시간 전 83
180601 [프로그래밍] 토이프로젝트 주제 선정 2 개드립눈팅1세대 0 2 시간 전 81
180600 [모바일] 운동할때 쓸 무선이어폰 구합니다 5 물타다대주주 0 3 시간 전 72
180599 [컴퓨터] 다크플래시 df5000에 3rsys팬 껴도 되나요? 3 함박눈 0 4 시간 전 43
180598 [잡담] 아니 유선 무선 음질 차이 이정도였던거임? 와신상담 1 4 시간 전 76
180597 [컴퓨터] 윈도우 부팅 납치 해석 닉으로드립치고싶냐 0 6 시간 전 131
180596 [컴퓨터] 노트북 키보드 수리 맡기고 왔더니 팬이 엄청 돈당 4 신요조 0 6 시간 전 87
180595 [모바일] iptime wan 포트 연결안됨 해법 있을까요.. 1 비밀변호486 0 6 시간 전 35
180594 [컴퓨터] B650보드 추천좀 해주십시오 4 커뮤니티 0 7 시간 전 64
180593 [모바일] 아니 s21이 169g이고 s24u가 233g인데 말이되나 9 마법부오러사무국장 0 14 시간 전 287
180592 [잡담] 드디어 cpu 배송시작한다 9 차원에서사는인간 0 18 시간 전 305
180591 [컴퓨터] 다빈치 리졸브 쓰는분있나여 4 afterschool 0 20 시간 전 170
180590 [모바일] 아이패드 저장공간 질문 6 가나가다라 0 20 시간 전 176
180589 [컴퓨터] 150~200 4K 게이밍 견적 부탁 드려봅니다 11 라면死리 0 20 시간 전 181
180588 [잡담] sn850x 1tb 방열판 없어도 괜찮죠?? 10 김빵순 0 22 시간 전 126
180587 [컴퓨터] Am5 메인보드 asrock b650m pg lightning vs gigabite b650m-k 8 죽업 0 1 일 전 98
180586 [모바일] s21 3년째쓰다가 s24 울트라로바꾸고 느낀점 5 마법부오러사무국장 0 1 일 전 610
180585 [견적] 중고 노트북 한번바조요 6 쯔네이 0 1 일 전 163