STL에서 동적으로 값을 저장할려고 할때..

gugudan의 이미지

#include <list>

#include <stdio.h>


int main()
{
    list<int*> aaa;


    for(int i=0;i<5;i++)
        aaa.push_back(new int(i*i));


    list<int*>::iterator pos = aaa.begin();
    while(pos != aaa.end())
    {
        printf("%d\n",*pos);
        pos++;
    }
    return 1;
}



코드를 저렇게 했는데 접근을 어떻게 해야 할지를 모르겠네요..
doldori의 이미지

접근이란 것이
printf("%d\n",**pos);
처럼 쓰는 걸 말씀하시는 건가요?

익명 사용자의 이미지

gugudan wrote:
#include <list>

#include <stdio.h>


int main()
{
    list<int*> aaa;


    for(int i=0;i<5;i++)
        aaa.push_back(new int(i*i));


    list<int*>::iterator pos = aaa.begin();
    while(pos != aaa.end())
    {
        printf("%d\n",*pos);
        pos++;
    }
    return 1;
}



코드를 저렇게 했는데 접근을 어떻게 해야 할지를 모르겠네요..

pos가 iterator이니까 *pos는 iterator가 가르키는값 즉
동적할당된 int의 포인터이죠
그래서 **pos하면 되겠네요.

그리고 pos++를 ++pos로.. 고치고요.(앞어거는 뒤엣걸로 구현합니다..)

익명 사용자의 이미지

네.. 감사합니다..