unordered_set から最後の要素を取得する必要があり、他のクラスではなく unordered_set を使用する必要があります。(ほとんどの場合、すでに行われた多くのコードを変更するためです)しかし、私が探していた唯一の可能な方法は、それを繰り返して要素を保存してから返すことです。しかし、大きなセットでは遅すぎるでしょう。その上、私はこれを試しましたが、うまくいきませんでした。
unordered_set <int>::iterator it = frames.end();
--it;
次のエラーが表示されました:「'operator--' in '--it' に一致しません」
主にこのため、この種の便利な機能は、次のように「スタック」方式でデータを保存します。
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 であり、前に「スタック」の方法で述べたように、挿入されたのは「最初の」要素です。
それを改善するためのアイデアはありますか?