본문 바로가기

프로그램언어/boost

[ Boost ] Boost.Array 정리

Boost 목록
 

링크 : http://tingcobell.tistory.com/295


ㅇ 내용

boost Ref.에 의하면 가변 크기의 배열은 std::vector or std::vector<> 의 동적인 배열을 사용할 수 있습니다. 

하지만 일반적으로 알고 있는 가변의 크기는 오버헤드가 있기 마련이죠. 

그래서 정적인 배열 고정크기를 정해 놓고 개발을 하게 됩니다. 

배열이 컨테이너가 아니기에 불편함을 이루 말할 수 없습니다.

int array_test[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};
int array_test[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};

boost 라이브러리에서 제공하고 있는 boost::array 라이브러리를 사용하여 테스트 해보겠습니다.

아래 reference을 참조하시면서 내용을 보시면 좋습니다.


ㅇ Reference

namespace boost {

template<typename T, std::size_t N> class array;

template<typename T, std::size_t N> void swap(array<T, N>&, array<T, N>&);

template<typename T, std::size_t N>

bool operator==(const array<T, N>&, const array<T, N>&);

template<typename T, std::size_t N>

bool operator!=(const array<T, N>&, const array<T, N>&);

template<typename T, std::size_t N>

bool operator<(const array<T, N>&, const array<T, N>&);

template<typename T, std::size_t N>

bool operator>(const array<T, N>&, const array<T, N>&);

template<typename T, std::size_t N>

bool operator<=(const array<T, N>&, const array<T, N>&);

template<typename T, std::size_t N>

bool operator>=(const array<T, N>&, const array<T, N>&);

}



Reference 링크 : http://tingcobell.tistory.com/301


ㅇ Description

  -
 array public construct/copy/destruct

template<typename U> array& operator=(const array<U, N>& other);

    i) std::copy(rhs.begin(),rhs.end(), begin())
    ii) 표준 std::copy 문법을 보고 한참을 고민했습니다. 

아 std::copy는 알겠는데 어떻게 써야 되나 고민중에 이렇게 저렇게 표현을 해보는 과정에서 정말로 단순한 저를 발견했습니다. 아 ㅋㅋ 단순의 극치을 보여주는구나 해당 Reference을 왜 주고 이해를 시키려는 것일까 정말로 단순히 응 이렇게 저렇게 표현하면서 error을 발생하고 어쩌라는 거야라고 혼자 투덜투덜되는 저를 보면서 웃습니다. 문제에 대한 이해를 저는 못하고 조금더 구체적으로 보기로 했습니다. std::copy 라는 문법 자체를 말이죠. 그래서 모르시면 구글박사님께 정중하게 물어보세요 std::copy가 뭐에요라고 그럼 친절하게 웹페이지로 보여주죠!!

해당 std::copy에 대해서 검색이 끝났거나 또는 알고 있으시다면 위 문법에서 제공하고 있는 std::copy에 대한 내용을 가지고 코딩을 하게 됩니다.  


#include <iostream>

#include <boost/array.hpp>


int main()

{


boost::array<int, 6> array_test = { 1, 2, 3, 4, 5, 6};


std::copy( array_test.begin(), array_test.end(),  std::ostream_iterator<int>(std::cout, " "));


return 0;

}







'프로그램언어 > boost' 카테고리의 다른 글

[ Boost ] Boost.Array Description  (0) 2011.05.03
[ Boost ] Ref. array.hpp  (4) 2011.05.02
[ Boost ] boost.foreach 간단한 예제-2  (0) 2011.04.29
[ Boost ] 간단한 예제  (1) 2011.04.29
[ boost ] Boost.foreach 간단한 예제  (0) 2011.04.29