c++ - 如何在不丢失顺序的情况下将 std::vector 转换为 std::set

标签 c++ type-conversion stdvector stdset

我正在使用以下代码进行转换:

std::set<ObjectType> s(v.begin(), v.end());

但是,我需要保持 vector 元素的顺序。我该怎么做?

最佳答案

如果 vector 未排序则不能。 std::set使其内容按升序或降序排列。

如果 vector 是有序的,那么您只需将 std::set 的比较函数设置为用于对 vector 进行排序的任何值。

您可能希望看到:How to remove duplicates from unsorted std::vector while keeping the original ordering using algorithms?

关于c++ - 如何在不丢失顺序的情况下将 std::vector 转换为 std::set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35022423/

相关文章:

c++ - 'memchr' 的冲突类型

c++ - 此 shared_ptr 示例中的内容不清楚

c++ - 通过两个不同的可执行文件进行 IPC?

Python:如何从字符数据流中生成整数?

python - 在C++中找到满足给定条件的 vector 元素的位置

c++ - std::get 在处理元组 vector 时返回错误

c++ - 如何从 vector 中删除重复的元素?

c++ - 将 SQLite 日期字段转换为 C++ Time_T

java - 为什么不能分配 I <?将类型> 扩展到 <类型>?

将阿拉伯数字(long long int)转换为C中的单词