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

Вектор типа Класс - C++

Восстановить пароль Регистрация
 
nsashans
7 / 7 / 0
Регистрация: 16.07.2012
Сообщений: 56
05.08.2012, 10:31     Вектор типа Класс #1
Как правильно работать с вектором тип которого класс, как правильно вносить и считывать данные вектора?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
using namespace std;
 
class Name
{
    public:
    string name;
    int value;
 
};
int main()
{
    vector<Name> nv;
    Name n_v;
    
    cout << "Ведите имя и значения:\n";
    cin >> n_v.name >> n_v.value;
    nv.push_back(n_v);
    //cout << nv[0];    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2012, 10:31     Вектор типа Класс
Посмотрите здесь:

Класс Вектор C++
Класс вектор C++
Класс Вектор C++
C++ Класс вектор
C++ вектор типа string
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
05.08.2012, 10:50     Вектор типа Класс #2
nsashans, не понял, в чем проблема? Твой код правильный. Потом работаешь с вектором примерно так (как с массивом)
C++
1
2
for (size_t i=0; i<nv.size(); ++i)
cout << nv[i].name << nv[i].value;
Если ты имеешь ввиду строку :
C++
1
//cout << nv[0]
то выводи так :
C++
1
cout << nv[0].name << nv[0].value;
nsashans
7 / 7 / 0
Регистрация: 16.07.2012
Сообщений: 56
05.08.2012, 10:53  [ТС]     Вектор типа Класс #3
Цитата Сообщение от nexen Посмотреть сообщение
nv[i].name
Точно! Что то торможу с утра))
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
05.08.2012, 10:57     Вектор типа Класс #4
Ну всё верно, вроде.
Считываем так:
C++
1
2
for (vector<Name>::const_iterator i = nv.begin(); i != nv.end(); ++i)
    cout << *(i).name << ' ' << *(i).value << '\n';
но лучше for_each пользовать или другой алгоритм для прохода по вектору.
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2012, 12:28     Вектор типа Класс #5
Цитата Сообщение от nsashans Посмотреть сообщение
ак правильно работать с вектором тип которого класс, как правильно вносить и считывать данные вектора?
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
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
 
struct TName//зачем класс если структура более уместна
{
    string name;
    int   value;
};
 
int main()
{
    //Это некая абстракция под ввод с неизвестным числом 
    //элементов TName
    string data = 
        "name1 25\n"
        "name2 38\n"
        "name3 15\n";
    stringstream ss(data);
    vector<TName> vec;//наш вектор данных
    vector<TName>::iterator it;//итератор - чтото наподобе индекса массива
    TName elem;//Буфферная переменная
    while(ss>>elem.name>>elem.value)
        vec.push_back(elem);
    //Как я и говорил it что-то наподобие индекса
    for(it = vec.begin(); it < vec.end(); it++)
        cout<<(*it).name<<" "<<(*it).value<<endl;
    return 0;
}
Отработка http://liveworkspace.org/code/a54c9e...14cedcc75a9ff7
Миниатюры
Вектор типа Класс  
Yandex
Объявления
05.08.2012, 12:28     Вектор типа Класс
Ответ Создать тему
Опции темы

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