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

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

Войти
Регистрация
Восстановить пароль
 
Tetradon
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 12
#1

Как вывести vector своего типа? - C++

22.01.2016, 15:48. Просмотров 391. Ответов 4
Метки нет (Все метки)

Суть вот в чем, допустим нужно создать класс Name_value, который хранит строку и число, занести все это дело в вектор так, чтоб получился такой вектор типа vector<Name_value>list.
Вот моя попытка, но ругается компилятор на выводе вектора. Нашел, что дело в перегрузке, но не нашел, как решить эту проблему.
P.S. Заранее извините за, возможно, глупый вопрос, но все же помогите пожалуйста разобраться глупому человеку, решившему изучать программирование.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "std_lib_facilities.h"
using namespace std;
 
class Name_value{
public:
    string name;
    int score;
    Name_value(string n,int s)
        :name(n),score(s){}
};
void main(){
vector<Name_value>list;
    string name,tempN;
    int score,tempS;
    
    cout<<"Enter name and score"<<endl;
    while(cin>>tempN>>tempS){
        if (tempN=="No more")break;
        list.push_back(Name_value(tempN,tempS));
    }
        
        for(int i=0;i<list.size();i++)
            cout>>list[i]>>endl;
    
    system("pause");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2016, 15:48     Как вывести vector своего типа?
Посмотрите здесь:

Использование vector insert и своего типа данных - C++
Не понимаю почему вот здесь выскакивает странная ошибка: arr.insert(arr.begin(),(*max)); #include &lt;iostream&gt; #include &lt;iterator&gt; ...

Как передать целочисленную матрицу типа std::vector<std::vector<int> > в функцию? - C++
Здравствуйте. Почитал на форуме, но так и не понял что я делаю не так. Имеется двумерный вектор. Размера .. Нужно его передать в...

Как записать координаты в vector типа PointF? - C++
контейнер объявляю так: std::vector&lt;PointF&gt; coordDraw; но как вписать координаты потом в этот контейнер? Добавлено через 6...

Не удаётся создать безымянный объект типа vector моего типа - C++
Собсно #include &lt;vector&gt; using namespace std; //Вот мой австорский тип struct kletka { int i, j; kletka(int x, int...

Массив типа "Vector" (Вывести номера двух крупнейших элементов в этом массиве. Вычислить их сумму) - C++
Образовать и вывести массив &quot;y&quot; типа Vector с элементами yk = f (k) k = 1.12 е = 2.71 Вывести номера двух крупнейших элементов в этом...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) - C++
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13054 / 7317 / 815
Регистрация: 27.09.2012
Сообщений: 18,053
Записей в блоге: 3
Завершенные тесты: 1
22.01.2016, 16:01     Как вывести vector своего типа? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Name_value{
public:
    string name;
    int score;
    Name_value(string n,int s)
        :name(n),score(s){}
};
 
 
 
std::ostream& operator<<(std::ostream& stream, const Name_value& obj)
{
    return stream << obj.name << " : " << obj.score ;
}
 
 
int main(){
vector<Name_value>list;
    string name,tempN;
    int score,tempS;
    
    cout<<"Enter name and score"<<endl;
    while(cin>>tempN>>tempS){
        if (tempN=="No more")break;
        list.push_back(Name_value(tempN,tempS));
    }
        
        for(int i=0;i<list.size();i++)
            cout<<list[i]<<endl;
    
    system("pause");
}
Tetradon
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 12
22.01.2016, 16:14  [ТС]     Как вывести vector своего типа? #3
Спасибо большое, работает!
Только я не понимаю объявление этой функции(или что это)...
C++
1
std::ostream& operator<<(std::ostream& stream, const Name_value& obj)
что такое ostream& operator да и в скобках тоже.
Если кто-то объяснит буду очень благодарен.
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,661
22.01.2016, 16:18     Как вывести vector своего типа? #4
Croessmah, минуты 3 всматривался как без объявления дружбы код работает - и потом до меня дошло ...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2016, 17:35     Как вывести vector своего типа?
Еще ссылки по теме:

Как вывести значения vector<list<struct>> ? - C++
У меня есть структура: struct graph { int i, j, len }; и массив списков: vector&lt;list&lt;graph&gt;&gt; g; Как мне вывести в цикле...

Как корректно скопировать vector в vector внутри класса - C++
Есть класс принимающий в конструкторе vector: class test { test(std::vector&lt;std::string&gt; codeList); ~test(); ...

Как вывести на екран структуру/класс через vector или list - C++
Всем привет.Подскажите как через итераторы правильно вывести структуру или класс в поток. Как я понял для стандартных типов они выводятся...

Вывести значения std::vector<std::vector<int*> > - C++
Подскажите, как вывести значения? const size_t row = 3; const size_t col = 3; std::vector&lt;std::vector&lt;int*&gt; &gt; imatrix; //...

Массив объектов пользовательского типа в vector - C++
Доброго времени суток. Кто может подсказать что храниться в vector&lt; Employer* &gt; employerArray ( 4 ); при его инициализации?

Вывод вектора типа vector<string> - C++
Имеется следующий код, который разделяет строку на отдельные слова и помещает их в вектор, возникла проблема с выводом вектора, подскажите...


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

Или воспользуйтесь поиском по форуму:
GbaLog-
Любитель чаепитий
2620 / 1159 / 284
Регистрация: 24.08.2014
Сообщений: 4,229
Записей в блоге: 1
Завершенные тесты: 2
22.01.2016, 17:35     Как вывести vector своего типа? #5
Tetradon,
что такое ostream& operator да и в скобках тоже.
ostream - это стандартный поток вывода.
А operator<< это перегрузка оператора вывода, можете в гугле найти всю нужную информацию по операторам ввода/вывода/сложения/etc.
Yandex
Объявления
22.01.2016, 17:35     Как вывести vector своего типа?
Ответ Создать тему
Опции темы

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