이 기사에서는 C++ STL에서 stack::swap() 함수의 작동, 구문 및 예제에 대해 논의할 것입니다.
C++ STL의 스택이란 무엇입니까?
스택은 데이터를 LIFO(Last In First Out)에 저장하는 데이터 구조로, 맨 위 또는 마지막에 삽입된 요소부터 삽입 및 삭제가 이루어집니다. 접시 더미와 마찬가지로 새 접시를 맨 위에 삽입한 스택으로 밀어넣고 스택에서 접시를 제거하려면 맨 위에서도 제거합니다.
스택::swap()이란 무엇입니까?
stack::swap() 함수는
구문
stack_name.swap(stack& stack2);
매개변수
이 함수는 다음 매개변수를 허용합니다. -
-
stack2:콘텐츠를 교환하려는 또 다른 스택 컨테이너입니다.
반환 값
이 함수는 아무 것도 반환하지 않습니다.
입력
std::stack<int>odd; odd.emplace(1); odd.emplace(3); odd.emplace(5); std::stack<int&g; eve; eve.emplace(2); eve.emplace(4); eve.emplace(6); odd.swap(eve);
출력
odd: 2 4 6 eve: 1 3 5
예시
#include <iostream> #include <stack> using namespace std; int main(){ stack<int> stck_1, stck_2; //inserting elements to stack 1 stck_1.push(1); stck_1.push(2); stck_1.push(3); stck_1.push(4); //inserting elements to stack 2 stck_2.push(5); stck_2.push(6); stck_2.push(7); stck_2.push(8); //swapping elements of stack 1 in stack 2 and vice-versa stck_1.swap(stck_2); cout<<"Elements in stack 1 are: "; while (!stck_1.empty()){ cout<<stck_1.top()<<" "; stck_1.pop(); } cout<<"\nElements in stack 2 are: "; while (!stck_2.empty()){ cout<<stck_2.top()<<" "; stck_2.pop(); } return 0; }
출력
위 코드를 실행하면 다음 출력이 생성됩니다 -
Elements in stack 1 are: 8 7 6 5 Elements in stack 2 are: 4 3 2 1