Назад к вопросам
Junior — Middle
87
Какой тип данных или объекты допустимо сохранять внутри контейнера std::set в C++?
Компании, где спрашивали
Renga Software
Ответ от нейросети
sobes.tech AI
В контейнер std::set в C++ можно сохранять любые типы данных, для которых определён оператор сравнения меньше (<), так как std::set хранит элементы в отсортированном порядке и использует этот оператор для упорядочивания.
Это могут быть:
- Примитивные типы (int, double, char и т.д.)
- Пользовательские классы и структуры, если для них определён оператор < или предоставлен компаратор при создании set
Пример с пользовательским типом:
#include <set>
#include <string>
struct Person {
std::string name;
int age;
bool operator<(const Person& other) const {
return age < other.age; // сортировка по возрасту
}
};
int main() {
std::set<Person> people;
people.insert({"Alice", 30});
people.insert({"Bob", 25});
}
Если оператор < не определён, компиляция завершится ошибкой.