一、创建set容器
使用set容器需要包含头文件 #include,创建一个空的set容器十分简单:
std::set mySet;
以上代码已经创建了一个空的set容器,可以开始往里面添加元素。
二、set容器元素的添加与删除
set容器内的元素都是唯一的、且按照一定的规则进行排序的。set容器的元素插入和删除非常简单。
元素的插入可以通过insert函数实现:
std::set mySet; mySet.insert(1); mySet.insert(2); mySet.insert(3);
元素的删除可以通过erase函数实现,其中包含一个参数表示要删除的元素,如果没有该元素,则不进行任何操作:
mySet.erase(2);
三、set容器的遍历
set容器自带排序,可以直接进行遍历。
使用auto关键字也可以快速遍历所有元素,例如:
std::set mySet{1, 5, 3, 2, 4}; for (auto i : mySet) { std::cout << i << " "; } // 打印结果:1 2 3 4 5
四、set容器的查找
set容器提供了find函数用于查找元素,如果找到则返回该元素的迭代器,否则返回end()迭代器。
std::set mySet{1, 5, 3, 2, 4}; auto iterator = mySet.find(3); if (iterator != mySet.end()) { std::cout << "3 exists in mySet" << std::endl; }
五、set容器的特性与应用
set容器只存储唯一的元素,可以用于去重。同时set容器也自带排序功能,可以用于排序操作。
例如,可以使用set容器对字符串进行去重操作:
std::set mySet{"apple", "banana", "grape", "apple"}; for (auto i : mySet) { std::cout << i << " "; } // 打印结果:apple banana grape
set容器也可以用于查找一组元素是否包含在另一组元素中,例如判断两个字符串是否包含相同的字母:
std::set strSet1{'a', 'b', 'c', 'd'}; std::set strSet2{'c', 'b', 'd', 'a'}; bool isEqual = (strSet1 == strSet2); std::cout << isEqual; // 打印结果:1
六、set容器示例代码
以下是一个完整的set容器示例代码:
#include #include int main() { std::set mySet{1, 5, 3, 2, 4}; // 遍历 for (auto i : mySet) { std::cout << i << " "; } std::cout << std::endl; // 添加元素 mySet.insert(6); // 删除元素 mySet.erase(2); // 查找元素 auto iterator = mySet.find(3); if (iterator != mySet.end()) { std::cout << "3 exists in mySet" << std::endl; } // 去重过滤重复元素 std::set myStringSet{"apple", "banana", "grape", "apple"}; for (auto i : myStringSet) { std::cout << i << " "; } std::cout << std::endl; // 判断两个set是否相等 std::set strSet1{'a', 'b', 'c', 'd'}; std::set strSet2{'c', 'b', 'd', 'a'}; bool isEqual = (strSet1 == strSet2); std::cout << isEqual; return 0; }
原创文章,作者:PYNH,如若转载,请注明出处:https://www.506064.com/n/136487.html