我需要从 unordered_set 中获取最后一个元素,并且它必须使用 unordered_set,而不是任何其他类。(主要是因为我要修改很多已经完成的代码)但是我一直在寻找唯一可能的方法是迭代它并保存元素然后返回它。但是在大集合中它太慢了。除了我试过这个并没有工作。
unordered_set <int>::iterator it = frames.end();
--it;
我收到以下错误:“'--it' 中的 'operator--' 不匹配”
它之所以有用,主要是因为它,它以“堆栈”方式存储数据,如下所示:
unordered_set<int> s;
s.insert(9);
s.insert(4);
s.insert(8);
s.insert(0);
s.insert(1);
unordered_set<int>::iterator it = s.end();
for( it = s.begin(); it!= s.end(); ++it )
cout << *(it) << " ";
它打印:“1 0 8 4 9”
所以“最后一个”元素总是 9,它是插入的“第一个”元素,正如我之前所说的“堆栈”方式。
有什么改进的办法吗?