在 C++ 的 std::set 容器中,元素是自动排序的,并且不允许存在重复的元素。如果你想要在插入元素时保留元素的原始顺序,你可以考虑使用 std::multiset 容器。std::multiset 允许存储重复的元素,并且不会对元素进行排序。
以下是一个简单的示例,展示了如何使用 std::set 和 std::multiset:
#include <iostream> #include <set> #include <multiset> #include <vector> int main() { // 使用 std::set 存储不重复的元素 std::set<int> my_set = {1, 2, 3, 4, 5}; std::cout << "std::set: "; for (const auto& elem : my_set) { std::cout << elem << ' '; } std::cout << std::endl; // 使用 std::multiset 存储可重复的元素 std::multiset<int> my_multiset = {1, 2, 3, 4, 5, 5, 5}; std::cout << "std::multiset: "; for (const auto& elem : my_multiset) { std::cout << elem << ' '; } std::cout << std::endl; return 0; } 输出结果:
std::set: 1 2 3 4 5 std::multiset: 1 2 3 4 5 5 5 在这个示例中,我们使用 std::set 存储不重复的元素,使用 std::multiset 存储可重复的元素。