using list instead of bits/stdc++.h

This commit is contained in:
foo290
2021-08-12 14:07:22 +05:30
parent d361eb15de
commit 19d09e8590

View File

@@ -45,10 +45,10 @@
* @author [Nitin Sharma](https://github.com/foo290) * @author [Nitin Sharma](https://github.com/foo290)
* */ * */
#include <bits/stdc++.h> /// for std::list #include <list> /// for std::list
#include <cassert> /// for assert #include <cassert> /// for assert
#include <iostream> /// for IO Operations #include <iostream> /// for IO Operations
#include <unordered_map> /// for std::unordered_map
/** /**
* @namespace lru_cache * @namespace lru_cache
@@ -59,7 +59,7 @@ namespace lru_cache {
/** /**
* @brief LRU cache class * @brief LRU cache class
*/ */
class LRUCache { class LRUCache {
int pageFrame; ///< Page frame, or total size of the cache. int pageFrame; ///< Page frame, or total size of the cache.
std::list<int> cache; ///< Cache linked list (using the STL) std::list<int> cache; ///< Cache linked list (using the STL)
std::unordered_map<int, std::list<int>::iterator> std::unordered_map<int, std::list<int>::iterator>
@@ -127,7 +127,7 @@ class LRUCache {
* @returns int * @returns int
* */ * */
int getPageFault() const { return pageFault; } int getPageFault() const { return pageFault; }
}; };
} // namespace lru_cache } // namespace lru_cache
@@ -137,11 +137,11 @@ namespace lru_tests {
* @tparam T Type of the given message. * @tparam T Type of the given message.
* @returns void * @returns void
* */ * */
template <typename T> template <typename T>
void log(T msg) { void log(T msg) {
// It's just to avoid writing cout and endl // It's just to avoid writing cout and endl
std::cout << "[TESTS] : ---> " << msg << std::endl; std::cout << "[TESTS] : ---> " << msg << std::endl;
} }
/** /**
* @brief A simple test case * @brief A simple test case
@@ -149,7 +149,7 @@ void log(T msg) {
* miss * miss
* @returns void * @returns void
* */ * */
static void test_1() { static void test_1() {
int expected_hits = 2; int expected_hits = 2;
int expected_pageFault = 4; int expected_pageFault = 4;
@@ -168,7 +168,7 @@ static void test_1() {
cache.getPageFault() == expected_pageFault); cache.getPageFault() == expected_pageFault);
log("Assert successful!"); log("Assert successful!");
log("Test-1 complete!"); log("Test-1 complete!");
} }
/** /**
* @brief A test case contains hits more than cache size * @brief A test case contains hits more than cache size
@@ -176,7 +176,7 @@ static void test_1() {
* miss * miss
* @returns void * @returns void
* */ * */
static void test_2() { static void test_2() {
int expected_hits = 4; int expected_hits = 4;
int expected_pageFault = 2; int expected_pageFault = 2;
@@ -195,7 +195,7 @@ static void test_2() {
cache.getPageFault() == expected_pageFault); cache.getPageFault() == expected_pageFault);
log("Assert successful!"); log("Assert successful!");
log("Test-2 complete!"); log("Test-2 complete!");
} }
/** /**
* @brief A simple test case * @brief A simple test case
@@ -203,7 +203,7 @@ static void test_2() {
* miss * miss
* @returns void * @returns void
* */ * */
static void test_3() { static void test_3() {
int expected_hits = 1; int expected_hits = 1;
int expected_pageFault = 5; int expected_pageFault = 5;
@@ -222,19 +222,19 @@ static void test_3() {
cache.getPageFault() == expected_pageFault); cache.getPageFault() == expected_pageFault);
log("Assert successful!"); log("Assert successful!");
log("Test-3 complete!"); log("Test-3 complete!");
} }
/** /**
* @brief A function to invoke all test cases * @brief A function to invoke all test cases
* @returns void * @returns void
* */ * */
static void run_tests() { static void run_tests() {
test_1(); test_1();
test_2(); test_2();
test_3(); test_3();
log(""); log("");
log("TESTS COMPLETED!"); log("TESTS COMPLETED!");
} }
} // namespace lru_tests } // namespace lru_tests
/** /**