8.2(목) C++ - 삽입반복자

from Study/C++ 2007/08/02 20:05 view 19163

#include <list>

#include <algorithm>

#include <iostream>

using namespace std;

 

// 삽입반복자

// 3개의 삽입반복자가 있다.

 

// 삽입반복자 함수버전의 구현

template<typename T> back_insert_iterator<T> xback_inserter( T& c )

{

        // 후방 삽입반복자 객체를 만들어서 리턴해 준다.

        // 타입을 넘겨주면서 생성자를 호출하여 리턴!
       
return back_insert_iterator<T>(c);
   

}

 

void main()

{

        int x[5] = { 1, 2, 3, 4, 5 };

 

        list<int> st(5, 1);

 

        // 삽입반복자의 객체를 만든 후 copy를 호출해도 되지만

        // 헬퍼함수를 사용해도 된다.

        copy( x, x+5, xback_inserter(st) );

 

        //front_insert_iterator<list<int> > p( st );

        //back_insert_iterator<list<int> > p( st );

        //insert_iterator<list<int> > p( st, st.begin() );

 

        //*p = 10;

        // 위코드대신push_front()를사용해도된다.

        //st.push_front( 10 );

 

        // 하지만여러개를계속넣고싶다면삽입반복자덕에copy()를사용할수있게된다.

        //copy( x, x+5, p );

 

        ostream_iterator<int> out( cout, " " );

 

        copy( st.begin(), st.end(), out );

}

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다