当C++遇到IOS应用开发---LRUCache缓存(4)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:51 点击:次
_lru_list->insert(make_pair(hash_value.access_, key));
(*_hash_table)[key] = hash_value;
}
else {
_lru_list->insert(make_pair(hash_value.access_, key));
if ( _hash_table->size() > DEF_CAPACITY )
{
// get the least recently used key
map<virtual_time, HashKey>::iterator iter = _lru_list->begin();
_hash_table->erase( iter->second );
// remove last key from list
_lru_list->erase(iter);
}
}
return 0;
}
HashValue* get( const HashKey& key )
{
map<HashKey, HashValue>::iterator iter = _hash_table->find(key);
if ( iter != _hash_table->end() )
{
virtual_time old_access = iter->second.access_;
iter->second.access_ = get_virtual_time();
//调整当前key在LRU列表中的位置
map<virtual_time, HashKey>::iterator it = _lru_list->find(old_access);
if(it != _lru_list->end()) {
_lru_list->erase(it);
}
_lru_list->insert(make_pair(iter->second.access_, key));
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- ios 时间定时器 NSTimer应用demo
- iPhone开发 文件的增加删除查询
- iphone-使用TextField及关闭键盘(useing TextField for in
- iOS文件存磁盘的设想
- iPhone开发 调用阿asp.net程序的webservice
- Cocoa Core Competencies 的Object creation 和IOS面试题示例
- ios 关于UITableView UITableViewCellAccessoryCheckmark 混乱的
- iphone开发基础三和c语言混编
- (iOS-iap防护)验证用户付费收据,拒绝iap
- 深入理解iPhone静态库(手把手教你iphone开发
新闻点评
新闻关注排行榜
热门推荐
最新推荐