Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pun4er
6 / 6 / 1
Регистрация: 06.10.2010
Сообщений: 122
#1

Не могу вывести вектор - C++

11.01.2012, 10:42. Просмотров 508. Ответов 1
Метки нет (Все метки)

Добрый день. Подскажите пожалуйста в чем дело. Есть массив класса. Пихаю его в вектор. Не ругается. Пытаюсь вывести - ошибка "error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "Book" (или приемлемое преобразование отсутствует)"
C++
1
2
3
4
5
6
7
8
9
10
11
12
Book std[3]=
    {
        Book("Pushkin","Stihi",1998,"Moskva",350),
        Book("Esenin","Rasskazi",1999,"Moskva",250.50),
        Book("Tolstoy","Voina i mir",2002,"Piter",450)
    };
    for(i=0;i<3;i++)
    {
        v.push_back(std[i]);
    }
    for(i=0;i<v.size();i++)
        cout<<v[i];//здесь ругается
Добавлено через 2 минуты
разобрался =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2012, 10:42     Не могу вывести вектор
Посмотрите здесь:

C++ Не могу объявить вектор в классе
Как вывести вектор списков? C++
C++ Не могу понять в каком месте ошибка. Описание класса вектор.
C++ не могу сделать так чтоб я сам вводил матрицы) задача умножения матрицы на вектор
Как вывести на экран весь вектор? Пожалуйста, подскажите C++
C++ Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток
Заполнить вектор длиной 10 квадратами целых чисел и вывести его в выходной поток C++
STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток C++
Вектор. Вывести в стек индексы двух минимальных значений C++
Как рандомно заполнить вектор? Не могу найти ошибку C++
C++ Вывести вектор через messagebox
C++ Вывести вектор, который будет состоять из максимальных элементов рядков матрицы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.01.2012, 10:46     Не могу вывести вектор #2
Вы пытаетесь вывести не вектор, а экземпляр класса Book.
Вот его-то компилятор вывести и не может.
Напишите оператор << для вывода экземпляра класса книги.

C++
1
2
3
4
std::ostream &operator<<(std::stream &stream, const Book &book) {
  stream << book.getAuthor() << ", " << book.getName(); // ну или как-там у вас getter'ы называются.
  return stream;
}
После этого можете хоть копированием выводить.
C++
1
std::copy(v.begin(), v.end(), std::ostream_iterator<Book>(std::cout, "\n"));
Yandex
Объявления
11.01.2012, 10:46     Не могу вывести вектор
Ответ Создать тему
Опции темы

Текущее время: 10:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru