C++中set的用法攻略
1. 引言
在C++中,set
是一个容器类模板,用于存储一组唯一的元素,并按照一定的顺序进行排序。set
容器中的元素默认按照升序排列,且不允许重复。本攻略将详细介绍set
的用法,包括创建、插入、删除、查找等操作。
2. 创建set对象
要使用set
容器,首先需要包含头文件<set>
。然后可以使用以下语法创建一个set
对象:
std::set<元素类型> set_name;
例如,创建一个存储整数的set
对象:
std::set<int> mySet;
3. 插入元素
可以使用insert()
函数向set
容器中插入元素。insert()
函数会自动将元素按照顺序插入,并确保不会插入重复的元素。以下是插入元素的示例代码:
mySet.insert(10); // 插入元素10
mySet.insert(20); // 插入元素20
mySet.insert(30); // 插入元素30
4. 删除元素
可以使用erase()
函数从set
容器中删除元素。erase()
函数接受要删除的元素作为参数,并返回删除的元素数量(0或1)。以下是删除元素的示例代码:
mySet.erase(20); // 删除元素20
5. 查找元素
可以使用find()
函数在set
容器中查找元素。find()
函数接受要查找的元素作为参数,并返回一个迭代器,指向找到的元素。如果元素不存在,则返回set
容器的end()
迭代器。以下是查找元素的示例代码:
std::set<int>::iterator it = mySet.find(30); // 查找元素30
if (it != mySet.end()) {
std::cout << \"元素30存在于set中\" << std::endl;
} else {
std::cout << \"元素30不存在于set中\" << std::endl;
}
6. 遍历set容器
可以使用迭代器来遍历set
容器中的元素。以下是使用迭代器遍历set
容器的示例代码:
for (std::set<int>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << \" \";
}
std::cout << std::endl;
7. 示例说明
示例1:使用set存储字符串
#include <iostream>
#include <set>
int main() {
std::set<std::string> mySet;
mySet.insert(\"apple\");
mySet.insert(\"banana\");
mySet.insert(\"orange\");
std::set<std::string>::iterator it = mySet.find(\"banana\");
if (it != mySet.end()) {
std::cout << \"元素banana存在于set中\" << std::endl;
} else {
std::cout << \"元素banana不存在于set中\" << std::endl;
}
for (std::set<std::string>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << \" \";
}
std::cout << std::endl;
return 0;
}
输出:
元素banana存在于set中
apple banana orange
示例2:使用set存储自定义对象
#include <iostream>
#include <set>
class Person {
public:
Person(std::string name, int age) : name(name), age(age) {}
bool operator<(const Person& other) const {
return age < other.age;
}
std::string getName() const {
return name;
}
int getAge() const {
return age;
}
private:
std::string name;
int age;
};
int main() {
std::set<Person> mySet;
mySet.insert(Person(\"Alice\", 25));
mySet.insert(Person(\"Bob\", 30));
mySet.insert(Person(\"Charlie\", 20));
std::set<Person>::iterator it = mySet.find(Person(\"Bob\", 30));
if (it != mySet.end()) {
std::cout << \"元素Bob存在于set中\" << std::endl;
} else {
std::cout << \"元素Bob不存在于set中\" << std::endl;
}
for (std::set<Person>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << it->getName() << \" \";
}
std::cout << std::endl;
return 0;
}
输出:
元素Bob存在于set中
Charlie Alice Bob
以上是关于C++中set
的用法的详细攻略,包括创建、插入、删除、查找和遍历等操作。希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中 set的用法 - Python技术站