다음을 통해 공유


list::splice

인수 목록에서 요소를 제거 하 고 해당 대상 목록에 삽입 합니다.

void splice(
   iterator _Where,
   list<Type, Allocator>& _Right
);
void splice(
   iterator _Where,
   list<Type, Allocator>& _Right,
   iterator _First
);
void splice(
   iterator _Where,
   list<Type, Allocator>& _Right,
   iterator _First,
   iterator _Last
);

매개 변수

  • _Where
    앞에 삽입할 인수 목록의 요소는 대상 목록에 위치 합니다.

  • _Right
    대상 목록에 삽입 되는 인수 목록입니다.

  • _First
    인수 목록에서 삽입할 범위에서 첫 번째 요소입니다.

  • _Last
    인수 목록에서 삽입할 범위를 벗어나는 첫 번째 요소입니다.

설명

요소에 있는 전에 첫 번째 멤버 함수 인수 목록에서 모든 요소 삽입 _Where 대상 목록에서입니다.또한 인수 목록에서 모든 요소를 제거합니다.

두 번째 멤버 함수를 가리키는 요소 제거 _First 삽입 되기 전에 대상 목록에 있는 요소의 가리키는 하 여 인수 목록에서 _Where.

셋째 멤버 함수는 지정 된 범위 삽입 [_First, _Last)에서 대상 목록에 있는 요소를 가리키는 전에 인수 목록에서 _Where.또한 인수 목록에서 삽입할 범위를 제거 합니다.

모든 경우에 반복기 또는 스플라이스 요소를 가리키는 참조만 사용할 수 없게 합니다.

예제

// list_splice.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1, c2, c3, c4;
   list <int>::iterator c1_Iter, c2_Iter, w_Iter, f_Iter, l_Iter;
   
   c1.push_back( 10 );
   c1.push_back( 11 );
   c2.push_back( 12 );
   c2.push_back( 20 );
   c2.push_back( 21 );
   c3.push_back( 30 );
   c3.push_back( 31 );
   c4.push_back( 40 );
   c4.push_back( 41 );
   c4.push_back( 42 );

   cout << "c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   cout << "c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   w_Iter = c2.begin( );
   w_Iter++;
   c2.splice( w_Iter,c1 );
   cout << "After splicing c1 into c2: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   f_Iter = c3.begin( );
   c2.splice( w_Iter,c3, f_Iter );
   cout << "After splicing the first element of c3 into c2: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   f_Iter = c4.begin( );
   l_Iter = c4.end( );
   l_Iter--;
   c2.splice( w_Iter,c4, f_Iter, l_Iter );
   cout << "After splicing a range of c4 into c2: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;
}
  

요구 사항

헤더: <list>

네임 스페이스: std

참고 항목

참조

list Class

표준 템플릿 라이브러리