반응형



 C++에서 2D Array를 Double Pointer로 받아서 Array형식같이 쓰려고 하니 에러가 났다. 

 Vector로 이용하여 2D Array같이 사용할 수 있다 해서 아래와 같이 테스트 코드를 작성해봤다.


#include <iostream>

#include <stdio.h>

#include <string.h>

#include <vector>


using namespace std;


typedef vector< vector<int> > DoubleVector;


class TestClass

{

public:

    int return_test(void);

    int set_test(int i, int j, int val);

    DoubleVector get_test(void);

    int show_test(void);


private:

    DoubleVector test;


public:

    TestClass() : test(3, vector<int>(3))

    {

    }

    ~TestClass() 

    {

    }


};


int TestClass::set_test(int i, int j, int val)

{

    test[i][j]=val;

}


DoubleVector TestClass::get_test(void)

{

    return test;

}


int TestClass::show_test(void)

{

    for ( int i=0; i<3; i++ )

    {

        for ( int j=0; j<3;j++ )

        {

            printf("test[%d][%d] : %d\n",i,j,  test[i][j]);

        }

    }

}


int main()

{

    TestClass Test;

    DoubleVector tmp;


    printf("============= SET =================\n");

    for ( int i=0; i<3; i++ )

    {

        for ( int j=0; j<3;j++ )

        {

            Test.set_test(i, j, (i*3)+j);

        }

    }


    printf("============= SHOW ================\n");

    Test.show_test();


    printf("============= GET ================\n");

    tmp.clear();

    tmp = Test.get_test();


    printf("============= SHOW2 ================\n");

    for ( int i=0; i<3; i++ )

    {

        for ( int j=0; j<3;j++ )

        {

            printf("tmp[%d][%d] : %d\n", i, j, tmp[i][j]);

        }

    }

}



반응형

+ Recent posts