디버그 Watch창에서 vector 내용 확인하기

STL 를 사용하다보면 어려운 점 중에 하나가 그 내용을 확인하기가 쉽지 않다는 점입니다. 배열을 사용하면 디버그 watch 창에 그 내용물이 보기 쉽게 표시되는데 배열의 STL 대응인 std::vector 를 사용하면 무슨 내용이 vector 저장되어 있는지 디버깅 시 확인하기가 쉽지 않습니다. 다음과 같이 watch 창에 입력하면 std::vector 의 내용을 확인할 수 있습니다.

01: /* testWatch.cpp : Defines the entry point for the console application. */
02:
03: 
04: #include "stdafx.h"
05: #include <vector>
06: #include <string>
07: 
08: struct Student
09: {
10:   std::string name;
11:   int id;
12: 
13:   Student(const std::string & _name, const int & _id) : name(_name), id(_id) { }
14: };
15: 
16: int main(int argc, char* argv[])
17: {
18:   std::vector<Student> rgStudent;
19: 
20:   rgStudent.push_back(Student("Jae", 1));
21:   rgStudent.push_back(Student("Mina", 2));
22: 
23:         printf("Hello World!\n");
24:         return 0;
25: }
26:
a) VC6 내장 STL

 

” rgStudent.size() ” 를 watch 창에 입력하면 벡터의 크기를 알 수 있습니다..

 

watch 창의 다음칸에 ” rgStudent._First,2 ” 를 입력하면 (2는 바로 위에서 구한 벡터의 크기) rgStudent 의 내용을 쉽게 확인할 수 있습니다.


b)
STLPort 4.6.2

“rgStudent.size()” 를 watch 창에 입력하면 벡터의 크기를 알 수 있습니다.

 

watch 창의 다음칸에 ” rgStudent._M_start,2 ” 를 입력하면 (2는 바로 위에서 구한 벡터의 크기) rgStudent 의 내용을 쉽게 확인할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다