Вектор объектов в C++
Вектор объектов удобен, когда набор экземпляров нужно наращивать по ходу работы программы.
Тип задают как std::vector<User>. Пустой вектор
объявляют без начального списка. Запишем класс User:
#include <iostream>
#include <string>
#include <vector>
class User {
public:
std::string name;
int age;
User(std::string name, int age) : name(name), age(age) {}
};
Создадим пустой вектор объектов User и выведем его длину:
int main() {
std::vector<User> people;
std::cout << people.size() << "\n";
return 0;
}
Новый объект в конец добавляют методом push_back.
Запишем класс User с именем и возрастом:
#include <iostream>
#include <string>
#include <vector>
class User {
public:
std::string name;
int age;
User(std::string name, int age) : name(name), age(age) {}
};
Создадим вектор, добавим двух пользователей и выведем размер:
int main() {
std::vector<User> people;
people.push_back(User("john", 21));
people.push_back(User("eric", 22));
std::cout << people.size() << "\n";
return 0;
}
Стартовый набор можно задать списком в фигурных скобках.
Запишем класс User с именем и возрастом:
#include <iostream>
#include <string>
#include <vector>
class User {
public:
std::string name;
int age;
User(std::string name, int age) : name(name), age(age) {}
};
Создадим вектор из трех объектов и выведем имя каждого в цикле:
int main() {
std::vector<User> people = {
User("john", 21),
User("eric", 22),
User("kyle", 23)
}
;
for (const User& user : people) {
std::cout << user.name << "\n";
}
return 0;
}
Сделайте класс Employee с именем и зарплатой
в конструкторе. Создайте пустой std::vector<Employee>,
добавьте два объекта через push_back
и выведите размер вектора.
Дан вектор объектов User:
std::vector<User> people = {
User("john", 21),
User("eric", 22),
User("kyle", 23)
};
Выведите имена пользователей, у которых возраст
больше 21.