阅读量:0
C++中的set
是一个关联容器,它包含一组唯一的元素。这些元素在插入时自动按键值进行排序。以下是一些关于C++ set
集合插入操作的技巧:
- 使用
insert()
函数插入元素:
std::set<int> mySet; mySet.insert(5); mySet.insert(10);
- 批量插入多个元素:
std::set<int> mySet; std::vector<int> vec = {1, 2, 3, 4, 5}; mySet.insert(vec.begin(), vec.end());
- 使用
emplace()
函数直接构造元素:
std::set<std::pair<int, std::string>> mySet; mySet.emplace(std::make_pair(1, "one")); mySet.emplace(2, "two"); // 从C++17开始支持
- 检查插入操作是否成功:
std::set<int> mySet; auto result = mySet.insert(5); if (result.second) { std::cout << "Element inserted successfully."<< std::endl; } else { std::cout << "Element already exists in the set."<< std::endl; }
- 使用
hint
参数提高插入性能(仅适用于有序容器):
std::set<int> mySet; auto hint = mySet.begin(); for (int i = 0; i < 10; ++i) { hint = mySet.insert(hint, i); }
- 使用初始化列表插入元素:
std::set<int> mySet = {1, 2, 3, 4, 5};
- 使用范围for循环遍历并插入元素:
std::vector<int> vec = {1, 2, 3, 4, 5}; std::set<int> mySet; for (const auto& elem : vec) { mySet.insert(elem); }
- 使用
std::inserter
和算法进行插入操作:
std::vector<int> vec = {1, 2, 3, 4, 5}; std::set<int> mySet; std::copy(vec.begin(), vec.end(), std::inserter(mySet, mySet.end()));
这些技巧可以帮助你更高效地使用C++ set
集合进行插入操作。