Update PrintUtil.hpp

仿写了个stack打印
This commit is contained in:
qualifier1024 2022-11-28 00:49:02 +08:00 committed by GitHub
parent c1d2e0de09
commit c57cabbbd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -67,22 +67,6 @@ class PrintUtil {
return os.str(); return os.str();
} }
/**
* @brief Print an Array
*
* @tparam T
* @tparam n
*/
template<typename T>
static void printArray(T* arr, int n)
{
cout << "[";
for (size_t i = 0; i < n - 1; i++) {
cout << arr[i] << ", ";
}
cout << arr[n - 1] << "]" << '\n';
}
/** /**
* @brief Get the Vector String object * @brief Get the Vector String object
* *
@ -95,6 +79,25 @@ class PrintUtil {
return "[" + strJoin(", ", list) + "]"; return "[" + strJoin(", ", list) + "]";
} }
/**
* @brief Get the Stack String object
*
* @tparam T
* @param stack
* @return string
*/
template <typename T>
static string getStackString(stack<T> stack) {
ostringstream s;
if(!stack.empty()){
s<<stack.top();stack.pop();
}
while(!stack.empty()){
s<<","<<stack.top();stack.pop();
}
return "top>" + s.str() + "]";
}
/** /**
* @brief Print a vector * @brief Print a vector
* *
@ -106,6 +109,17 @@ class PrintUtil {
cout << getVectorString(list) << '\n'; cout << getVectorString(list) << '\n';
} }
/**
* @brief Print a stack
*
* @tparam T
* @param sta
*/
template <typename T>
static void printStack(stack<T> &stack) {
cout << getStackString(stack) << '\n';
}
/** /**
* @brief Print a vector matrix * @brief Print a vector matrix
* *