- 插入已存在元素的情况:
- 在C++ 的STL
set
容器中,set
容器的特性是每个元素的值必须是唯一的。当尝试插入一个已经存在的元素时,该插入操作会被忽略,set
的大小不会改变,也不会产生任何错误或异常。
- 代码示例:
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
mySet.insert(10);
// 尝试插入已存在的元素10
auto result = mySet.insert(10);
if (result.second) {
std::cout << "元素插入成功。" << std::endl;
} else {
std::cout << "元素已存在,插入失败。" << std::endl;
}
return 0;
}
- 通过返回值判断插入是否成功:
set
的insert
成员函数返回一个std::pair
,其中first
是一个指向已插入元素(或已存在元素)的迭代器,second
是一个bool
值。如果插入成功,second
为true
;如果插入的元素已存在,second
为false
。在上述代码中,result.second
用于判断插入操作是否成功。