stack::operator<
사용 하는 방법을 보여 줍니다 있는 stack::operator < Visual C++에서 표준 템플릿 라이브러리 (STL) 함수입니다.
template<class _TYPE, class _C, class _A>
bool stack::operator<(
const stack<_TYPE, _C, _A>& _X
) const;
설명
[!참고]
프로토타입에 클래스/매개 변수 이름은 헤더 파일에서 버전이 일치 하지 않습니다.일부 가독성을 높이기 위해 수정 되었습니다.
Stack::operator < 함수 연산자의 왼쪽된에 있는 스택에 스택 오른쪽 보다 작은 경우 true를 반환 합니다.
한 스택에서 다른 스택 보다 작은 경우를 확인 하려면
가장 아래쪽 요소 (첫 번째 요소 스택에) 비교 합니다.
요소를 서로 다른 경우, 작은 요소와 스택 보다 스택 큰 요소입니다.
요소는 동일 하 고 더 많은 요소를 스택의 다음 요소로 이동 하 고 다시 2 단계로 이동 합니다.
스택 모든 요소가 시점에서 처리 될 경우 스택을 같습니다.
예제
// StackLessThan.cpp
// compile with: /EHsc
// Illustrates how to use the stack::operator<
// function to determine if one stack is less than
// another stack.
//
// Functions:
//
// operator< : Returns true if the stack is smaller than the stack
// passed as the operand.
//////////////////////////////////////////////////////////////////////
#pragma warning(disable:4786)
#include <stack>
#include <iostream>
using namespace std ;
typedef stack<double> STACK_DOUBLE;
int main()
{
STACK_DOUBLE stack1,stack2;
// Add item 4.0 to Stack1. Stack1 contains 4.0.
cout << "stack1.push(4.0) s1=[4.0]" << endl;
stack1.push(4.0);
// Add item 3.0 to Stack1. Stack1 contains 3.0(top) and 4.0(bottom).
cout << "stack1.push(3.0) s1=[3.0 4.0]" << endl;
stack1.push(3.0);
// Add item 4.0 to Stack2. Stack2 contains 4.0 (top=bottom).
cout << "stack2.push(4.0) s2=[4.0]" << endl;
stack2.push(4.0);
// Compare if Stack1 is smaller than Stack2. Should return False.
cout << "stack1<stack2 is " <<
((stack1<stack2)? "True": "False") << endl << endl;
// Add item 6.0 to Stack2. Stack2 contains 6.0(top) and 4.0(bottom).
cout << "stack2.push(6.0) s2=[6.0 4.0]" << endl;
stack2.push(6.0);
// Compare if Stack1 is smaller than Stack2. Should return True.
cout << "stack1<stack2 is " <<
((stack1<stack2)? "True": "False") << endl << endl;
// Add item 8.0 to Stack2. Stack2 contains 8.0(top), 6.0 and
// 4.0(bottom).
cout << "stack2.push(8.0) s2=[8.0 6.0 4.0]" << endl;
stack2.push(8.0);
// Compare if Stack1 is smaller than Stack2. Should return True.
cout << "stack1<stack2 is " <<
((stack1<stack2)? "True": "False") << endl << endl;
// Delete item 8.0 from Stack2.
cout << "stack2.pop() s2=[6.0 4.0]" << endl;
stack2.pop();
// Delete item 6.0 from Stack2.
cout << "stack2.pop() s2=[4.0]" << endl;
stack2.pop();
// Add item 3.0 to Stack2. Stack2 contains 3.0(top) and 4.0(bottom).
cout << "stack2.push(3.0) s2=[3.0 4.0]" << endl;
stack2.push(3.0);
// Compare if Stack1 is smaller than Stack2. Should return False.
cout << "stack1<stack2 is " <<
((stack1<stack2)? "True": "False") << endl << endl;
// Delete item 3.0 from Stack2.
cout << "stack2.pop() s2=[4.0]" << endl;
stack2.pop();
// Delete item 4.0 from Stack2.
cout << "stack2.pop() s2=[]" << endl;
stack2.pop();
// Add item 8.0 to Stack2. Stack2 contains 8.0(top=bottom).
cout << "stack2.push(8.0) s2=[8.0]" << endl;
stack2.push(8.0);
// Compare if Stack1 is smaller than Stack2. Should return True.
cout << "stack1<stack2 is " <<
((stack1<stack2)? "True": "False") << endl << endl;
}
Output
stack1.push(4.0) s1=[4.0]
stack1.push(3.0) s1=[3.0 4.0]
stack2.push(4.0) s2=[4.0]
stack1<stack2 is False
stack2.push(6.0) s2=[6.0 4.0]
stack1<stack2 is True
stack2.push(8.0) s2=[8.0 6.0 4.0]
stack1<stack2 is True
stack2.pop() s2=[6.0 4.0]
stack2.pop() s2=[4.0]
stack2.push(3.0) s2=[3.0 4.0]
stack1<stack2 is False
stack2.pop() s2=[4.0]
stack2.pop() s2=[]
stack2.push(8.0) s2=[8.0]
stack1<stack2 is True
요구 사항
헤더: <stack>