프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180609 [컴퓨터] 7800x3d로 롤 돌리는 사람 있음? 보거 0 16 분 전 11
180608 [컴퓨터] 윈도우 부팅오류 도움!ㅠㅠ 3 qop 0 2 시간 전 35
180607 [컴퓨터] 윈10 인터넷 순간 끊김 문제 해결법 좀 5 해물잠봉 0 5 시간 전 100
180606 [컴퓨터] 요새 그래픽카드 어디꺼가 좋음? 4 trader2 0 5 시간 전 175
180605 [잡담] 님들 보통 마우스 얼마나 오래 씀 ?? 14 말릭스 0 5 시간 전 151
180604 [컴퓨터] 윈도우10 노트북 화면 밝기가 자꾸 변하는데 해결 방법 좀 알... 3 두번하세요 0 6 시간 전 55
180603 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 9 잠적자 0 8 시간 전 244
180602 [잡담] PC방에선 무선이어폰 못쓰나? 2 급병신미 0 9 시간 전 158
180601 [컴퓨터] 모니터 이거 괜찮나여? 4 햄보칼쑤가없엉! 0 10 시간 전 151
180600 [프로그래밍] 토이프로젝트 주제 선정 2 개드립눈팅1세대 0 10 시간 전 135
180599 [모바일] 운동할때 쓸 무선이어폰 구합니다 6 물타다대주주 0 11 시간 전 105
180598 [컴퓨터] 다크플래시 df5000에 3rsys팬 껴도 되나요? 3 함박눈 0 11 시간 전 58
180597 [잡담] 아니 유선 무선 음질 차이 이정도였던거임? 1 와신상담 1 11 시간 전 111
180596 [컴퓨터] 윈도우 부팅 납치 해석 3 닉으로드립치고싶냐 0 13 시간 전 176
180595 [컴퓨터] 노트북 키보드 수리 맡기고 왔더니 팬이 엄청 돈당 4 신요조 0 13 시간 전 103
180594 [모바일] iptime wan 포트 연결안됨 해법 있을까요.. 2 비밀변호486 0 13 시간 전 47
180593 [컴퓨터] B650보드 추천좀 해주십시오 5 커뮤니티 0 14 시간 전 84
180592 [모바일] 아니 s21이 169g이고 s24u가 233g인데 말이되나 9 마법부오러사무국장 0 21 시간 전 318
180591 [잡담] 드디어 cpu 배송시작한다 9 차원에서사는인간 0 1 일 전 340
180590 [컴퓨터] 다빈치 리졸브 쓰는분있나여 4 afterschool 0 1 일 전 184