我用[2,3,5]创建了一个unordered_set,我想以FIFO顺序访问,如何使用unordered_set进行尝试,尝试这样做但遇到编译错误。
int showFirstUnique() {
if(unique.empty())
return -1;
else{
unordered_set<int> :: iterator itr=unique.end();
itr--;
return *itr;
}
}
最佳答案
Access last element of unordered_set in C++
您可以使用访问前向列表的最后一个元素的相同方法来访问无序关联容器的最后一个元素:通过迭代这些元素直到到达它为止。
这样做的渐近复杂度当然是线性的,并且通常不会使用无序容器来完成。
itr--;
这是行不通的,因为无序容器迭代器是正向迭代器。它们不能向后迭代。
I want to access in FIFO order
无序容器的元素未按FIFO顺序存储。这种容器的最后一个元素与元素插入的顺序无关。
您可以改用
std::queue
例如具有FIFO顺序。
关于c++ - 在C++中访问unordered_set的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61482646/