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
[16745] Re:[질문] vector간의 복사와 vector의 삭제는?
김백일 [cedar] 2893 읽음    2002-03-25 13:56
민인학 님이 쓰신 글 :
: 제목 그대로 인데요...
:
: struct port_info {
:         char *PortName;
:         int PortWidth;
:         int PortDir;
:         int PortType;
: };
:
:
: struct import_file_info {
:         char *EdifFile;
:         int InstanceID;
:         char *InstanceName;
:         char *InterfaceModule;
:         int CmdFifoSize;
:         int ReadFifoSize;
:         int WriteFifoSize;
:         int SlaveReadFifoSize;
:         int SlaveWriteFifoSize;
:         char *CLKPort;
:         char *CLKEdge;
:         int PortNo;  // 포트의 갯수
:         vector<port_info> PortInfo;  // 포트 정보
:         int ProtID;
:         int TransatorID;
: };
:
:
: vector<import_file_info> ImportFilesInfo;
: vector<import_file_info> ImportFilesInfoBackup;
:
: 예를 들어서...
:
: ImportFilesInfo의 내용을 ImportFilesInfoBackup로 복사할려면..
:
: ImportFilesInfoBackup = ImportFilesInfo;
: 하면 안되나요?
: 이렇게 하니 안되더라구요... 에러는 안나는데...

흠... ImportFilesInfo가 제대로 되어 있다면, 안 될리가 없을 텐데요.
혹시
ImportFilesInfoBackup.assign(ImportFilesInfo.begin(), ImportFilesInfo.end());
가 되는지 보세요.

: 아참.. 그리고...
:
: 만약... ImportFilesInfo[2]를 삭제할려면...
: 어떻게 해야하죠? ^^

ImportFileInfo.erase(ImportFilesInfo.begin() + 2);

ImportFilesInfo[2] == *(ImportFilesInfo.begin() + 2)를 삭제한 후에,
ImportFilesInfo[3] == *(ImportFilesInfo.begin() + 3)부터
ImportFilesInfo[ImportFilesInfo.size() - 1] == *(ImportFilesInfo.end())까지를
전부 다 한 '칸' 씩 앞으로 당겨 놓습니다.
(광란(?)의 복사가 일어나는 거죠.)
그러므로 걸리는 시간은 O(N)이나 됩니다. -_-;;

만약 이런 삭제를 자주 해야 한다면, 절대 vector를 쓰지 마시고, list나 deque등을 쓰세요.

: 고수님들의 답변 기다립니다.


+ -

관련 글 리스트
16737 [질문] vector간의 복사와 vector의 삭제는? 민인학 1445 2002/03/25
16745     Re:[질문] vector간의 복사와 vector의 삭제는? 김백일 2893 2002/03/25
16749         정말 감사드립니다... 이제 모든것이 해결이 되었군요... 근데.. 민인학 1212 2002/03/25
16750             Re:정말 감사드립니다... 이제 모든것이 해결이 되었군요... 근데.. 김백일 1158 2002/03/25
16754                 아.. 그렇군요... 답변에 감사드립니다. 민인학 1073 2002/03/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.