需要按插入顺序设置 STL
如何按插入顺序将元素存储在集合中.例如.
How to store elements in set in insertion order. for example.
set<string>myset;
myset.insert("stack");
myset.insert("overflow");
如果你打印,输出是
overflow
stack
需要的输出:
stack
overflow
推荐答案
一种方法是使用两个容器,一个 std::deque
按插入顺序存储元素,另一个 std::set
以确保没有重复.
One way is to use two containers, a std::deque
to store the elements in insertion order, and another std::set
to make sure there are no duplicates.
插入元素时,先检查是否在set
中,如果是则丢弃;如果不存在,请将其同时插入 deque
和 set
.
When inserting an element, check if it's in the set
first, if yes, throw it out; if it's not there, insert it both in the deque
and the set
.
一个常见的场景是先插入所有元素,然后处理(不再插入),如果是这种情况,set
可以在插入处理后释放.
One common scenario is to insert all elements first, then process(no more inserting), if this is the case, the set
can be freed after the insertion process.
相关文章