'연구관련 > 프로그래밍' 카테고리의 다른 글
CString을 숫자로 (정수, 실수) (0) | 2011.07.07 |
---|---|
MFC 파일열기 초기 폴더 지정 (0) | 2011.07.04 |
[스크랩] CString <-> char* (0) | 2011.05.01 |
이중배열 함수 전달 (0) | 2011.04.26 |
Visual studio .rc 파일 opened in another editor (MFC) (0) | 2011.04.11 |
CString을 숫자로 (정수, 실수) (0) | 2011.07.07 |
---|---|
MFC 파일열기 초기 폴더 지정 (0) | 2011.07.04 |
[스크랩] CString <-> char* (0) | 2011.05.01 |
이중배열 함수 전달 (0) | 2011.04.26 |
Visual studio .rc 파일 opened in another editor (MFC) (0) | 2011.04.11 |
유니코드 환경 (이 코드는 멀티바이트 환경에서도 사용 가능하다. 권장.)
//CString -> char* 는 CT2A
CString aaa = _T("AAAA");
char* bbb = new char[strlen(CT2A(aaa))+1];
strcpy(bbb, CT2A(aaa));
delete[] bbb;
//char* -> CString 는 CA2T
char* aaa = "AAAA";
CString bbb = CA2T(aaa);
멀티바이트 환경 (이 코드는 멀티바이트 환경에서만 사용할 수 있다.)
//CString -> char* 는 (LPSTR)(LPCTSTR)
CString aaa = _T("AAAA");
char* bbb = new char[strlen((LPSTR)(LPCTSTR)aaa)+1];
strcpy(bbb, (LPSTR)(LPCTSTR)aaa);
delete[] bbb;
//char* -> CString 는 (LPCTSTR)(LPSTR)
char* aaa = "AAAA";
CString bbb = (LPCTSTR)(LPSTR)aaa;
출처: http://darkstings.blog.me/30101840108
[출처] CString char*|작성자 9KM ArtOfRudah
MFC 파일열기 초기 폴더 지정 (0) | 2011.07.04 |
---|---|
quick sort 코드 (2) | 2011.06.01 |
이중배열 함수 전달 (0) | 2011.04.26 |
Visual studio .rc 파일 opened in another editor (MFC) (0) | 2011.04.11 |
개인적으로 자주 쓰는 define 문 (0) | 2011.03.22 |
quick sort 코드 (2) | 2011.06.01 |
---|---|
[스크랩] CString <-> char* (0) | 2011.05.01 |
Visual studio .rc 파일 opened in another editor (MFC) (0) | 2011.04.11 |
개인적으로 자주 쓰는 define 문 (0) | 2011.03.22 |
stl vector erase 사용시 주의점1 (0) | 2010.12.29 |
[스크랩] CString <-> char* (0) | 2011.05.01 |
---|---|
이중배열 함수 전달 (0) | 2011.04.26 |
개인적으로 자주 쓰는 define 문 (0) | 2011.03.22 |
stl vector erase 사용시 주의점1 (0) | 2010.12.29 |
Visual Studio 2008, Vector erase할 때 주의사항 (0) | 2010.12.29 |
이중배열 함수 전달 (0) | 2011.04.26 |
---|---|
Visual studio .rc 파일 opened in another editor (MFC) (0) | 2011.04.11 |
stl vector erase 사용시 주의점1 (0) | 2010.12.29 |
Visual Studio 2008, Vector erase할 때 주의사항 (0) | 2010.12.29 |
c++ vector 사용법 (0) | 2010.12.13 |
읽어볼 논문 (0) | 2011.08.09 |
---|---|
Recognizing and Learning Object Categories (0) | 2011.08.03 |
내 논문이 흥미롭다는 외국인의 메일 ㅋㅋㅋ (1) | 2011.02.24 |
SiftGPU (0) | 2011.01.17 |
Computer Vision Open Source Algorithm Implementations (0) | 2010.12.03 |
Recognizing and Learning Object Categories (0) | 2011.08.03 |
---|---|
영상처리 및 비젼 학회 리스트 및 임팩트 팩터 (0) | 2011.03.14 |
SiftGPU (0) | 2011.01.17 |
Computer Vision Open Source Algorithm Implementations (0) | 2010.12.03 |
각종 자료구조 알고리즘 정리 (0) | 2010.11.22 |
영상처리 및 비젼 학회 리스트 및 임팩트 팩터 (0) | 2011.03.14 |
---|---|
내 논문이 흥미롭다는 외국인의 메일 ㅋㅋㅋ (1) | 2011.02.24 |
Computer Vision Open Source Algorithm Implementations (0) | 2010.12.03 |
각종 자료구조 알고리즘 정리 (0) | 2010.11.22 |
JPEG EXIF Orientation 경우의 수 (0) | 2010.11.16 |
Visual studio .rc 파일 opened in another editor (MFC) (0) | 2011.04.11 |
---|---|
개인적으로 자주 쓰는 define 문 (0) | 2011.03.22 |
Visual Studio 2008, Vector erase할 때 주의사항 (0) | 2010.12.29 |
c++ vector 사용법 (0) | 2010.12.13 |
Messagebox : c 에서 AfxMessagebox 같은걸 쓰고 싶을때 (0) | 2010.12.08 |
출처는 밑에 있습니다.
vector에 저장된 요소를 루프를 돌며 일정 부분을 삭제하는 루틴은 쓰이는 곳이 많다.
보통 아래와 같이 이터레이터로 루프를 돌린다.
vector≪MyObj*≫ lists_;
vector≪MyObj*≫::iterator itr;
for ( itr = lists_.begin() ; itr != lists_.end() ; itr++ )
{
MyObj* obj = *itr;
if ( 조건 )
{
delete obj;obj=NULL;
lists_.erase(itr);
}
}
그런데, 그전까지 잘 동작하던 위 코드가 Visual studio 2008에서 작성할때는 때때로 오류가 발생하였다.
항상 발생하는 것은 아니고 때때로...
구글링을 통해서 해결책을 찾은것은 erase 결과로 이터레이터를 받는 식으로 고치는 것이다.
for ( itr = lists_.begin() ; itr != lists_.end() ; )
{
MyObj* obj = *itr;
if ( 조건 )
{
delete obj;obj=NULL;
itr = lists_.erase(itr);
}
else
itr++;
}
위와 같이 하니까 때때로 발생하던 런타임 오류가 없어졌다...
이거때문에 며칠간 삽질 엄청 한거 생각하면
개인적으로 자주 쓰는 define 문 (0) | 2011.03.22 |
---|---|
stl vector erase 사용시 주의점1 (0) | 2010.12.29 |
c++ vector 사용법 (0) | 2010.12.13 |
Messagebox : c 에서 AfxMessagebox 같은걸 쓰고 싶을때 (0) | 2010.12.08 |
afxcontrolbars.h 에러 , fatal error C1083: Cannot open include file: 'afxcontrolbars.h': No such file or directory (0) | 2010.12.08 |