1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // © 2016 and later: Unicode, Inc. and others.
- // License & terms of use: http://www.unicode.org/copyright.html
- /*
- **********************************************************************
- * Copyright (C) 2003-2011, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
- #include "uvector.h"
- U_NAMESPACE_BEGIN
- UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UStack)
- UStack::UStack(UErrorCode &status) :
- UVector(status)
- {
- }
- UStack::UStack(int32_t initialCapacity, UErrorCode &status) :
- UVector(initialCapacity, status)
- {
- }
- UStack::UStack(UObjectDeleter *d, UElementsAreEqual *c, UErrorCode &status) :
- UVector(d, c, status)
- {
- }
- UStack::UStack(UObjectDeleter *d, UElementsAreEqual *c, int32_t initialCapacity, UErrorCode &status) :
- UVector(d, c, initialCapacity, status)
- {
- }
- UStack::~UStack() {}
- void* UStack::pop() {
- int32_t n = size() - 1;
- void* result = nullptr;
- if (n >= 0) {
- result = orphanElementAt(n);
- }
- return result;
- }
- int32_t UStack::popi() {
- int32_t n = size() - 1;
- int32_t result = 0;
- if (n >= 0) {
- result = elementAti(n);
- removeElementAt(n);
- }
- return result;
- }
- int32_t UStack::search(void* obj) const {
- int32_t i = indexOf(obj);
- return (i >= 0) ? size() - i : i;
- }
- U_NAMESPACE_END
|