- 设计思路:
- 使用
std::set<int>
的insert
成员函数,该函数返回一个std::pair
,其中first
指向插入的元素(如果插入成功)或已存在的元素,second
是一个bool
值,true
表示插入成功,false
表示插入的元素已存在(冲突)。
- 定义两个计数器,一个用于记录成功插入的次数,另一个用于记录冲突的次数。遍历要插入的数据集合,每次调用
insert
函数,并根据返回值更新相应的计数器。
- 关键代码片段:
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
// 假设这是要插入的数据集合
int data[] = {1, 2, 2, 3, 4, 4, 5};
int successCount = 0;
int conflictCount = 0;
for (int num : data) {
auto result = mySet.insert(num);
if (result.second) {
successCount++;
} else {
conflictCount++;
}
}
std::cout << "成功插入次数: " << successCount << std::endl;
std::cout << "冲突次数: " << conflictCount << std::endl;
return 0;
}