C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[52226] Re:STL의 list의 첫번째 항목만을 삭제하려면요..
슬.강슬기 [mydog21] 1211 읽음    2008-02-12 13:07
이용태 님이 쓰신 글 :
: 리스트에 short* 형 동적 배열을 10개 넣습니다.
:
: std::list<short*> lpsVar;
:
: for(int i = 0; i < 10; i++)
: {
:     short *temp = new short[10000];
:     lpsVar.push_back(temp);
: }
:
: 그런 후, list의 첫번째 항목을 지우고... 맨 마지막에 새로운 항목을 다시 넣을려고 합니다.
:
: 정상적으로 작동된다면 list엔 항상 10개의 short*형 배열만이 저장되겠죠..
:
: std::list<short*>::iterator itDel;
: itDel = lpsVar.begin();
: delete [] (*itDel); //첫번째 리스트에 저장되어 있는 short형 동적 배열 삭제
: lpsVar.pop_front(); //제일 앞에 있는 요소 삭제
: short *temp1 = new short[10000];
: lpsVar.push_back(temp1); //제일 뒤에 요소 삭제
:

: 이런 기능을 하는것을 타이머로 일정 시간마다 계속 진행을 시킵니다.
:
:  이럴때
:
: delete *itDel;
:
: 하는 부분에서 에러가 납니다...
:
: 왜 에러가 나는 겁니까... 살려주세요...ㅠㅠ
:
: 그리고 특정 항목의 리스트를 삭제할려면요(리스트가 담고 있는 short 데이터까지) 어떻게 해야 하나요?

원하시는 답변은 아닙니다만..
제가 위와 같은경우라면... 좀더 다른 방식으로 구현했겠다 싶어서 글을 남깁니다.

위의 작업과 같이 선입 선출이 자주 일어나는 데이터구조를 다룰때에는 list를 이용하는것보다
deque를 이용하는것이 성능이나 구현이 더 쉽지 않을 낳지 않을까요?

그리고.. 또 하나 저같은경우라면 STL 에 포인터를 넣어서 직접 관리하는것보다는..
매니져 클래스를 만드는게 어떨까 싶네요^^

구현의 인터페이스가 좀더 깔끔해질것 같은데요..
디버깅도 확실하고...

문제의 대한 답변은 아니지만,
어쩌면 해결책이 될지도 몰라 생각을 적어봤습니다^^
그럼 즐프하세요..

+ -

관련 글 리스트
52185 STL의 list의 첫번째 항목만을 삭제하려면요.. 이용태 1300 2008/02/04
52226     Re:STL의 list의 첫번째 항목만을 삭제하려면요.. 슬.강슬기 1211 2008/02/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.