|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
LRU缓存类模板 更多...
#include <lru_cache.hpp>
Public 类型 | |
| using | key_type = Key |
| 键类型 | |
| using | value_type = Value |
| 值类型 | |
| using | size_type = size_t |
| 大小类型 | |
| using | clock = steady_clock |
| 时钟类型 | |
| using | time_point = clock::time_point |
| 时间点类型 | |
| using | duration = clock::duration |
| 持续时间类型 | |
Public 成员函数 | |
| lru_cache (size_type capacity) | |
| 构造函数 | |
| void | put (const Key &key, const Value &value) |
| 插入或更新缓存项 | |
| NEFORCE_NODISCARD optional< Value > | get (const Key &key) |
| 获取缓存项 | |
| NEFORCE_NODISCARD optional< Value > | peek (const Key &key) const |
| 查看缓存项(不更新访问状态) | |
| bool | erase (const Key &key) |
| 删除缓存项 | |
| void | remove_expired (duration max_age) |
| 删除过期的缓存项 | |
| void | clear () |
| 清空所有缓存项 | |
| NEFORCE_NODISCARD size_type | size () const noexcept |
| 获取当前缓存大小 | |
| NEFORCE_NODISCARD size_type | capacity () const noexcept |
| 获取缓存容量 | |
| NEFORCE_NODISCARD bool | contains (const Key &key) const noexcept |
| 检查缓存是否包含指定键 | |
| template<typename Predicate> | |
| void | remove_if (Predicate pred) |
| 按条件删除缓存项 | |
LRU缓存类模板
| Key | 键类型 |
| Value | 值类型 |
实现LRU(最近最少使用)缓存淘汰策略的容器。 当缓存达到容量上限时,会淘汰最长时间未被访问的条目。
特性:
在文件 lru_cache.hpp 第 39 行定义.
|
inlineexplicit |
构造函数
| capacity | 缓存容量 |
| value_exception | 当capacity为0时抛出 |
创建一个指定容量的LRU缓存。
在文件 lru_cache.hpp 第 65 行定义.
引用了 capacity().
|
inlinenoexcept |
|
inline |
|
inline |
获取缓存项
| key | 键 |
访问缓存项会将其移动到最近使用位置,并更新最后访问时间。
在文件 lru_cache.hpp 第 111 行定义.
引用了 none , 以及 steady_clock::now().
|
inline |
查看缓存项(不更新访问状态)
| key | 键 |
与get不同,此方法不会移动缓存项到最近使用位置,也不会更新访问时间。 适用于仅需要查看而不改变缓存状态的场景。
在文件 lru_cache.hpp 第 129 行定义.
引用了 none.
|
inline |
插入或更新缓存项
| key | 键 |
| value | 值 |
如果键已存在,更新其值并将其移动到最近使用位置; 如果键不存在且缓存已满,淘汰最久未使用的项后再插入新项; 无论插入还是更新,都会更新该键的最后访问时间。
在文件 lru_cache.hpp 第 86 行定义.
引用了 steady_clock::now().
|
inline |
删除过期的缓存项
| max_age | 最大存活时间 |
遍历所有缓存项,删除最后访问时间超过max_age的项。 适用于需要自动清理过期数据的场景。
在文件 lru_cache.hpp 第 159 行定义.
引用了 erase() , 以及 steady_clock::now().
|
inline |
按条件删除缓存项
| Predicate | 谓词类型 |
| pred | 判断函数,返回true时删除对应项 |
遍历所有缓存项,删除满足谓词条件的项。
在文件 lru_cache.hpp 第 207 行定义.