[问题] hash_map 取最后一笔的值

楼主: TwoDemon (飞天)   2015-05-06 15:40:42
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
STL
问题(Question):
C++ 中使用 map 有没有什么方法可以直接取到最后一笔的 fist 值。
如:
for (g_iter=g_bk.begin();g_iter!=g_bk.end();++g_iter) {
last_no = g_iter->first;
}
有没有方法不需要loop完,就可以抓出最后一笔的 fist 字段直。
作者: azureblaze (AzureBlaze)   2015-05-06 15:49:00
有什么要找最后一笔的理由吗?hashmap本身没顺序的概念,第一笔和最后一笔有何不同?
作者: jaid (jaid)   2015-05-06 16:54:00
unordered_map才是hash 你是要问哪个
楼主: TwoDemon (飞天)   2015-05-06 17:24:00
我使用的是typedef std::hash_map<int,string> hm;
作者: azureblaze (AzureBlaze)   2015-05-06 17:51:00
unordered_map基本上跟hash_map差不多只是加入标准时怕跟现存hash_map撞名才换怪名字问题还是"最后一笔"对你而言到底有什么特别的?
作者: BlazarArc (Midnight Sun)   2015-05-06 17:55:00
你在一个没有order的容器中找last的意义是?而且hash_map是compiler extension
作者: wuliou (wuliou)   2015-05-06 18:55:00
要找最后一笔的画你干嘛用hashmap?
楼主: TwoDemon (飞天)   2015-05-07 09:12:00
谢谢,我改成使用map, 那请问有办法不loop抓到最后一笔的 first 字段值吗(不需全部loop)
作者: suhorng ( )   2015-05-07 10:31:00
_.end() - 1 或 _.rbegin()不对, 应该要 --_.end()
作者: BlazarArc (Midnight Sun)   2015-05-07 11:18:00
std::map::rbegin()
作者: azureblaze (AzureBlaze)   2015-05-07 11:31:00
我还是觉得你根本不知道你在做什么

Links booklink

Contact Us: admin [ a t ] ucptt.com