一、创建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
微信扫一扫
支付宝扫一扫