c++ - 使用 std::set 对 std::list 进行排序

标签 c++ stl

我正在向 std::list 和 std::set 添加两个不同的元素,我希望 std::list 以与 std::set 相同的顺序排序。我尝试的一种方法是当元素添加到 std::set 时,找到该元素,然后使用 std::distance(begin, found) 获取该元素的索引,然后将该元素插入到 std::list 中的该索引。还有其他办法吗?

最佳答案

你应该使用 std::map ,将您放入集合中的数据作为键,将您放入列表中的数据作为值。

这样你的列表元素就会被排序。

关于c++ - 使用 std::set 对 std::list 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2116434/

相关文章:

c++ - 关于模糊排列的代码问题

stringbuf/ifstream 的 C++ 编译器错误

c++ - 如何使用 C++ 测量 block 或程序中使用的内存

c++ - 一个类的令人惊讶的构造函数!

c++ - std::list 是否有等效于 vector::reserve() 的方法?

C++ 模板实例化 - 与 STL 不同,为什么我的模板实例化必须始终是显式的?

c++ - If-else循环寻找解决方案

c++ - 那么是什么将 emplace(c.end(),_1) 与 emplace_back(_1) 区分开来呢?

c++ - 使用 const 键从集合中删除元素

c++ - 为什么使用带有自定义比较器的 std::sort 无法编译?