|
안녕하세요 만해입니다
또 질문요~
vector<TTag*>(Tags).swap(Tags);
Tags.clear();
AnchorsMap.erase(AnchorsMap.begin(),AnchorsMap.end());
map<string,unsigned int,less<string> >(AnchorsMap).swap(AnchorsMap);
AnchorsMap.clear();
ObjectMap.erase(ObjectMap.begin(),ObjectMap.end());
map<string,unsigned int,less<string> >(ObjectMap).swap(ObjectMap);
ObjectMap.clear();
김백일님의 글과 Effective STL 17번 내용을 참고로
swap을 써서 메모리를 날리고 이 난리를 치고 있습니다.
그리고 밑의 AnsiString에 대한 글의 답변으로 알려 주신내용으로 고치고 했어요
질문은
HParser라는 객체내에 있는 아래 두 자료형을
복사해와야 하는데
vector<TObjectType> UrlVector;
vector<TObjectType> ObjVetor;
여기부터 복사 부분.
TempUrlVector.assign(HParser->UrlVector.begin(),HParser->UrlVector.end());
TempObjVector.assign(HParser->ObjVector.begin(),HParser->ObjVector.end());
이 부분이 좀 이상해서요
그냥 for문 돌려서 집어 넣을까 하다가 Assign문을 썼는데
조금 이상해져서요
복사문이 다음에 delete HParser가 호출되고
TempUrlVector,TempObjVector의 내용을 일일이 탐색하면서
걸러 주는 작업을 해야 하는데
deleted 메모리를 액세스 한다는 메세지가 나오네요
조업 부탁 드립니다.
ps. 패패루성의 애기를 듣고 쓰레드간의 자료 교환 되는 자료형 하고
몇몇의 자료형을 다시 정의 해야 될것 같다는 느낌이 드네요
셤 끝나자 마자 바로 재설계에 들어 가야 되겠네요
감사 드려요
ps. ps
그런데 map에 노드 하나 추가 시키는데 그렇게 많이 필요할줄 몰랐네요
아직 STL의 특성을 다 몰라서
열심히 공부 해야 겠습니다.
김상구.패패루 님이 쓰신 글 :
: 만해야.. 내다.. 패패루
:
: 소스는 보지두 않아따.. 켜켜켜
:
: 근데 대충 봐떠니만 map을 쓸 때 키값을 쓰면서도 또 스트럭쳐에 집어넣더구나..
: 용량 두배다..
: URL 값은 엄청 긴 경우 많다..
: 80byte가 아니라 800byte는 되어보인다..
: 게다가 map은 AVL Binary Search Tree다..
: 노드 하나 증가할 때 최소 몇바이트가 필요하겄냐..
: Parent, Left, Right.. 데이터 없이도 기본 12바이트다..
: 그것만 있겄냐.. STL에서 사용할 데이터들.. 기타등등 합치면 노드 하나 추가되는거
: 만만치 않다.. 근데 키값까지도 중복해서 저장하면.. 키를 그냥 int같은거 쓰는 것도
: 아니고 스트링을 키로 쓰는디.. 어찌 그게 용량을 적게 묵겠능가
:
: 바이너리 서치트리가 제아무리 검색속도가 빠르다구 해도 지난번에 네가 올린 소스처
: 럼 쓰면 검색량 엄청나다.. 1000개면 균형이 맞아도 10레벨이고.. 스트링 비교 최소한
: 10번은 들어가는데.. 그렇게 [] 연산자로 뒤지믄 어케하란마리냐..
:
: vector의 경우 카파시티가 이따..
: 늘어나는건 맘대로 느러나지만 줄어드는건 맘대로 안된다..
: 최종 사이즈는 10이라도 실제 캐퍼시티는 100이 될 수도 있고 10000이 될 수도 이따..
: 이런거 다 고려했느냐..
:
: 이런 뎐차로.. 만약 노드 하나가 800byte에 1000개면 거진 1메가다..
: 이런거 10개 있음 대충 10메가다..
: 게다가 카파시티 고려 안했다믄.. 또 엄청 는다..
:
: HeapAlloc 썼다면 또 역시.. 줄어들지 않는 메모리 이따.. 메모리 릭은 아니다..
:
: 소스는 안봐쓰니 머라 할 마른 엄다믄서도..
: 가뜨기나 내 쏘쓰 보기두 머리아픈데 메모리 누수 잡느라 새 쏘쓰 보기 구찬타..
: ㅋㅋㅋ
:
: 아무튼. 잘해보라는 얘기쥐~~~~
:
:
|