Lyn
조회 수 36887 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

multi_array는 다차원 정적배열을 지원하는 클래스이다.
이를 이용하는 다른 방법은 std::tr1::array 를 중첩해서 사용 하는 방법이 있는데, 이것을 좀 더 편하게 확장했다고 보면 되겠다.

std::tr::array에 관한 내용은 아래 링크를 참조해라
http://lunapiece.net/Article/476

 

아래는 multi_array와 중첩된 array에 관한 예제코드이다. 이것도 별 내용이 없다보니 그냥 코드 보여주는걸로 끝낸다.

 

#include "stdafx.h"

#include <array>

#include <multi_array.hpp>

#include <cstdio>

 

using namespace boost;

 

int _tmain(int argc, _TCHAR* argv[])

{

        //TR1Array를이용한Static Array of Array 구현

        printf("std::tr1::array<std::tr1::array<int,20>, 10>\n");

        std::tr1::array<std::tr1::array<int,20>, 10> Stdarr; //int[10][20] 선언

        //10*20인데선언시에는숫자가반대로씌여지므로헤깔린다!

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

        {

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

               {

                       Stdarr[i][j] = 1;

               }

        }

 

        //boost::multi_array

        printf("multi_array 사용\n");

        multi_array<int, 2> MultiArray(extents[10][20]);

        //int2차원배열[10][20]을선언. 템플릿인자가Type 과차원을나타냄.

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

        {

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

               {

                       MultiArray[i][j] = 2;

               }

        }

       

        printf("multi_array range 조정\n");

        //Pascal 처럼배열의인덱스를변형할수있는기능을제공한다.

        typedef multi_array<int, 2>::extent_range range; //이름이너무길어서ㅡ.

        multi_array<int, 2> MultiArray2(extents[range(1,4)][range(20,40)]);

        //Pascal 과비교하면Array [1..4-1] of Array[20..40-1] of Integer 라고할수있겠다.

        for (int i = 1; i < 4 ; ++i)

        {

               for(int j = 20;j < 40; ++j)

               {

                       MultiArray2[i][j] = 2;

               }

        }

        return 0;

}

 

 

 

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
138 [TR1 살펴보기] 1. Random Lyn 2008.10.05 38495
137 대기하는 쓰래드 모두 깨우기 (Java의 notifyAll) Lyn 2012.09.04 38096
136 Boost 에서 자기 자신의 shared_ptr 리턴하기 file Lyn 2010.03.02 38019
135 [TR1 살펴보기] 2. Array Lyn 2008.10.05 37738
134 Mysql 툴 Lyn 2011.03.31 37597
133 [개인자료] 프로그램 만들때 무조건 해야하는것.. Lyn 2011.01.26 37286
132 [Boost 살펴보기] 1. pool file Lyn 2009.05.11 37259
131 컨테이너가 파괴될 때 소유한 객체 자동으로 파괴하기 Lyn 2008.10.22 36911
130 [Boost 살펴보기] 2. any Lyn 2009.05.11 36891
» [Boost 살펴보기] 4. multi_array Lyn 2009.05.11 36887
128 [TR1 살펴보기] 3. UnOrdered Containers Lyn 2008.10.05 35782
127 MS가 C++AMP 를 clang+llvm 기반으로 포팅했네요. Lyn 2013.11.13 35734
126 C++11 표준 라이브러리 확장 (cbegin, cend) Lyn 2012.10.04 34619
125 [잡설] 앱스토어의 유행. 프로그래머에겐 과연? Lyn 2010.02.19 34488
124 C Runtime Library Exception Dump 남기기 첫번째방법 Lyn 2013.06.11 33226
123 C++11 lambda 간단사용법과 성능비교. 4 file Lyn 2012.01.30 32734
122 Boost 빌드 방법 1 Lyn 2012.01.14 31854
121 Visual C++ 2013 추가기능 2. Variadic Tamplate - 1 file Lyn 2013.12.03 30753
120 C++ 템플릿 상속에서 베이스 클래스의 멤버에 접근하는 경우의 문제 1 file Lyn 2012.08.29 30556
119 ubuntu 14.04 에서 apache rotatelogs 설치하기 Lyn 2014.08.22 30389
Board Pagination Prev 1 2 3 4 5 6 7 ... 8 Next
/ 8