std::tr1::array - 고정


프로그램 중에서 가장 많이 사용하고 있는 것이 배열입니다. 언제나 사용하고 있는 배열 int data[5] 와 같은 것들을 클래스로 제공하는 것입니다.


 
배열을 사용한 간단한 샘플

#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;

 

int main()

{
      const size_t N = 5;
      int arr[N] = {1,2,3,4,5};
      // 배열의 요소를 출력 한다 
   copy(arr, arr+N, ostream_iterator<
int >(cout, " " ));
   cout << endl;
}

 

배열에 대해 표준 C++ <algorithm>을 적용할 때 적용 범위 즉 반복자의 묶음으로서 배열의 선두와 말미를 이 예에서는 arr arr+N 을 줍니다.

 


표준 C++ 라이브러리의 컨테이너 std::vector 라면


vector< int > ivec;
// 배열의 요소를 출력 한다
copy(ivec.begin(), ivec.end(), ostream_iterator<
int >(cout, " " ));


와 같이 반복자를 돌려주는 멤버 begin() /end()사용할 수 있습니다. 고정 배열 array는 표준 C++ 라이브러리의 컨테이너와 같은 멤버를 가지면서 그 실체는 빌트인 배열이라고 하는 품격이 틀린 클래스입니다.


array 라면...

#include  <iostream>
#include <algorithm>
#include <iterator>
#include < boost/tr1/array.hpp > // std::tr1::array
using namespace std;

 


int main() {
   // template인수에는 요소의 형태와 요소 수를 지정한다 
   tr1::
array< int ,5> arr = {{ 1,2,3,4,5}}; // {{ }} 둘러쌀 것 
   copy(arr.begin(), arr.end(), ostream_iterator<
int >(cout, " " ));
}

 

std::tr1::array template인수 T, N에는 각각 요소의 형태와 요소 수를 지정합니다. 각 요소의 초기화가 필요하면 요소 줄을 {{ }} 둘러싸 주세요.

 



std::tr1::array 의 주요한 멤버들을 아래에 나타냅니다.


size()

요소 수 N을 돌려줍니다.

operator[](n) , at(n)
n
번째의 요소. at(n) 은 범위 외( n >= N ) std::range_error 예외를 throw합니다.

front() , back()
각각 선두 요소/말미 요소를 돌려줍니다.

begin() , end()
각각 선두/말미의 반복자를 돌려줍니다.

rbegin() , rend()
각각 선두/말미의 역순 반복자를 돌려줍니다. 역순으로 출력

tr1::array< int ,5> arr = {{1,2,3,4,5}};
copy(arr. rbegin() , arr. rend() , ostream_iterator< int >(cout, " " ));

 
swap(other)
array other
와의 사이에 각 요소를 교환합니다. X y를 통째로 교환

tr1::array< int ,5> x;
tr1::array< int ,5> y;x.swap(y) ;

 
assign(value)
전 요소에 value 를 대입합니다모든 요소를 -1 로 초기화

tr1::array< int ,5> x;x.assign(-1) ;

 

== , !=, <= , >, >=
array 를 비교합니다. 대소 관계는 사전순서(lexicographical)에 근거합니다.

 


원본 : http://codezine.jp/a/article/aid/1937.aspx

저작자 표시
신고
by 흥배 2010.02.25 08:30
| 1 |