C++ unordered_set的insert

在C++标准库中,unordered_set是一种容器,用于存储唯一的元素集合。与set不同的是,unordered_set使用哈希表来存储元素,因此其插入、查找和删除操作的时间复杂度均为O(1)(平均情况下),而set则为O(logN)。
本文将详细介绍unordered_set的insert操作,包括如何使用insert插入元素、插入重复元素的处理、以及示例代码和运行结果。
1. 插入元素
在unordered_set中插入元素可以使用成员函数insert。insert函数接受一个参数,即要插入的元素,如果插入成功则返回一个pair,其中first是一个iterator指向新插入元素的位置,second为bool值,表示插入是否成功(true表示成功,false表示元素已存在)。
以下是使用insert插入元素的示例代码:
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> my_set;
// 插入元素
auto result = my_set.insert(5);
if(result.second) {
std::cout << "Insert success!" << std::endl;
} else {
std::cout << "Element already exists!" << std::endl;
}
return 0;
}
运行结果如下:
Insert success!
2. 插入重复元素处理
如果插入的元素已经存在于unordered_set中,insert操作仍会尝试插入该元素,但会返回一个指向已存在元素的iterator和false的bool值。
以下是插入重复元素的示例代码:
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> my_set = {1, 2, 3, 4};
// 插入已存在元素
auto result = my_set.insert(3);
if(result.second) {
std::cout << "Insert success!" << std::endl;
} else {
std::cout << "Element already exists!" << std::endl;
}
return 0;
}
运行结果如下:
Element already exists!
总结
通过本文的介绍,我们了解了在C++中如何使用unordered_set的insert操作插入元素,并且掌握了插入重复元素的处理方法。insert操作是unordered_set中非常常用的功能之一,能够帮助我们高效地管理唯一的元素集合。在实际应用中,我们可以根据需要灵活运用insert操作,来满足不同场景下的需求。
极客笔记