주어진 것은 STL에서 C++의 기능 목록 swap() 함수를 보여주는 작업입니다.
STL의 목록이란 무엇입니까?
목록은 순서대로 어디에서나 일정한 시간 삽입 및 삭제를 허용하는 컨테이너입니다. Listare는 이중 연결 목록으로 구현됩니다. 목록은 비연속적인 메모리 할당을 허용합니다. 목록은 배열, 벡터 및 데크보다 컨테이너의 모든 위치에서 요소의 삽입 추출 및 이동을 더 잘 수행합니다. 목록에서 요소에 대한 직접 액세스는 느리고 목록은forward_list와 비슷하지만 앞으로 목록 개체는 단일 연결 목록이며 앞으로만 반복될 수 있습니다.
스왑( )이란 무엇입니까?
이 함수는 한 목록의 요소를 다른 목록으로 교환하는 데 사용되며 둘 다 데이터 유형과 크기가 동일합니다.
구문:listname1.swap(listname2)
예시
Input List1: 50 60 80 90 List2: 90 80 70 60 Output After swapping operation List1: 90 80 70 60 List2: 50 60 80 90 Input List1: 45 46 47 48 49 List2: 50 51 52 53 54 Output After swapping Operation List1: 50 51 52 53 54 List2: 45 46 47 48 49
접근법을 따를 수 있음
-
먼저 두 개의 List를 초기화합니다.
-
그런 다음 두 개의 목록을 인쇄합니다.
-
그런 다음 swap() 함수를 정의합니다.
-
마지막으로 교환 작업 후 두 개의 목록을 인쇄합니다.
위의 접근 방식을 사용하여 두 개의 목록을 바꿀 수 있습니다.
예
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ // initializing two lists List<int> list1 = { 10, 20, 30, 40, 50 }; cout<< “ List1: “; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << “ “; List<int> list2 = { 40, 50, 60, 70, 80 }; cout<< “ List2: “; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << “ “; // defining swap( ) function list1.swap(list2); cout<< “ After swapping List1 is :”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; cout<< “ After swapping List2 is :”; for(auto x = list1.begin( ); x!= list2.end( ); ++x) cout<< *x<< “ “; return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다.
Input - List1: 10 20 30 40 50 List2: 40 50 60 70 80 Output - After swapping List1 is: 40 50 60 70 80 After swapping List2 is: 10 20 30 40 50
예
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ // initializing two lists list<int> list1 = { 11, 12, 13, 14, 15 }; cout<< “ List1: “; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << “ “; List<int> list2 = { 16, 17, 18, 19, 20 }; cout<< “ List2: “; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << “ “; // defining swap( ) function list1.swap(list2); cout<< “ After swapping List1 is :”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; cout<< “ After swapping List2 is :”; for(auto x = list1.begin( ); x!= list2.end( ); ++x) cout<< *x<< “ “; return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다.
Input - List1: 11 12 13 14 15 List2: 16 17 18 19 20 Output - After swapping List1 is: 16 17 18 19 20 After swapping List2 is: 11 12 13 14 15