Printing out all books in my vector after doing pushback

while (get(book))
{
    get(book);
    add(book_shelf,book);
}

This looks like you call get(book) twice, but only add every other book to the book shelf. That way you would lose half the books.