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]); } } } |
'개발, 웹, 블로그 > Linux 상식' 카테고리의 다른 글
date 명령어 정리 (0) | 2017.11.07 |
---|---|
smi 지원하는 minidlna 설치 방법 (0) | 2016.09.18 |
raspberry pi 3에 minidlna 설치 및 LG TV에서 서버 접속 (0) | 2016.09.18 |