2013-03-29 4 views
0

Мне нужно определить структуру (или класс) в C++, которая имеет фиксированное количество элементов данных/функций. Хотя количество экземпляров, сделанных из этого класса, должно увеличиваться или уменьшаться (и я не знаю, сколько экземпляров мне нужно, это определяется на лету). Примером может служить «книга» класса с данными: «стоимость», «автор» и т. Д., Но количество книг в библиотеке может увеличиваться/уменьшаться по мере того, как люди берут/возвращают книги. Поэтому я не могу использовать что-то вроде:Переменное количество объектов, созданных из структуры/класса

book *pointer = new book[3] 

Поскольку я не уверен, что у меня будет 3 книги.

Просьба проинструктировать меня о том, какую стратегию я должен предпринять.

ответ

0

Вы можете хранить

std::vector<book> books 

vector имеет resize функции.

+0

Спасибо за ваш ответ! Я исследовал вектор, он действительно делает то, что я хотел. Кроме того, я увидел, что я могу использовать функцию sort() для вектора. Но здесь, если я хочу сортировать векторные элементы (которые являются структурами), не обязательно основанные на первом члене каждого элемента структуры, что мне делать? имеет ли функция сортировки аргумент, чтобы рассказать ей о сортировке вектора структуры на основе i-го элемента данных элементов структуры? – user2225868

+0

@ user2225868: Есть два варианта. Один, оператор перегрузки <для вашей структуры. Во-вторых, напишите функцию, возвращающую bool, и возьмем два объекта вашей структуры. Функция должна возвращать true тогда и только тогда, когда первый объект меньше (должен быть первым в отсортированном порядке). Затем передайте эту функцию в качестве третьего аргумента для сортировки –

Смежные вопросы