Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Как вывести содержимое структуры-вектора? - C++

07.07.2017, 07:39. Просмотров 194. Ответов 13
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct cvrs {
    string name;
    int years;
};
 
int main()
{
    vector <cvrs> vect[2];
    cvrs check;
    for (int i = 0; i < 3; i++) {
        check.name = "Name";
        check.years = i;
        vect[i].push_back(check);
        cout << "\nName: " << check.name << endl;
        cout << "Age:  " << check.years << endl;
    }
 
    //здесь хочу проверить отдельно
return 0;
}
Последовательно вывожу, в цикле, всё хорошо, но хочется проверить отдельно
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2017, 07:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вывести содержимое структуры-вектора? (C++):

Вывести содержимое вектора на экран - C++
-------------------------------------------------------------------------------- Добрый день! Подскажите как вывести содержимое...

Как записать содержимое вектора в файл? - C++
Вот проблема, не пойму как записать содержимое вектора в файл - подскажите пож... struct trip { int number_bus; int...

Ошибка с итераторами для целочисленного вектора и вектора структуры - C++
Пытаюсь разобраться с векторами. Для динамической работы с памятью вещь, вроде, замечательная и удобная. Только необходимо использовать...

Как добраться до поля структуры являющейся элементом вектора? - C++
Здравствуйте. Всё просто: есть структура Face в которой есть три переменной типа float: a,b,c. Создаю вектор этой структуры vector&lt;Face&gt;...

Как вывести содержимое list? - C++
есть вот такой класс. Когда в main пытаюсь вывести содержимое list, выкидывает ошибка &quot;list iterators incompatible&quot;. Ошибка именно в этих...

Как вывести содержимое в TextBox? - C++
Visual Studio 2010, Visual C++. Имеется такой код для вычисления хэша SHA-1 #define UNICODE #include &lt;stdio.h&gt; #include...

13
oldnewyear
373 / 361 / 106
Регистрация: 21.05.2016
Сообщений: 1,190
07.07.2017, 07:55 #2
C++
1
vector <cvrs> vect[2];
Зачем тут массив векторов?

Добавлено через 1 минуту
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 <iostream>
#include <vector>
 
using namespace std;
 
struct cvrs {
    string name;
    int years;
};
 
 
 
int main()
{
    vector <cvrs> vect;
    cvrs check;
    for (int i = 0; i < 3; i++) {
        check.name = "Name";
        check.years = i;
        vect.push_back(check);
        cout << "\nName: " << check.name << endl;
        cout << "Age:  " << check.years << endl;
    }
 
return 0;
}
0
whxz0r
0 / 0 / 1
Регистрация: 28.04.2017
Сообщений: 16
07.07.2017, 08:00  [ТС] #3
Тут не нужен. Это для примера.
0
oldnewyear
373 / 361 / 106
Регистрация: 21.05.2016
Сообщений: 1,190
07.07.2017, 08:01 #4
Цитата Сообщение от whxz0r Посмотреть сообщение
Тут не нужен. Это для примера
Вектор это динамическая структура. Ему не надо указывать размер
0
whxz0r
0 / 0 / 1
Регистрация: 28.04.2017
Сообщений: 16
07.07.2017, 08:02  [ТС] #5
Я в курсе, прочитайте вопрос.
0
oldnewyear
373 / 361 / 106
Регистрация: 21.05.2016
Сообщений: 1,190
07.07.2017, 08:06 #6
C++
1
for (auto const& v: vect) cout << v.name << " " << v.years << endl;
0
whxz0r
0 / 0 / 1
Регистрация: 28.04.2017
Сообщений: 16
07.07.2017, 08:11  [ТС] #7
'const class std::vector<cvrs>' has no member named 'name'
'const class std::vector<cvrs>' has no member named 'years'
0
oldnewyear
373 / 361 / 106
Регистрация: 21.05.2016
Сообщений: 1,190
07.07.2017, 08:14 #8
Потому что у вас массив векторов непонятно для чего

Добавлено через 36 секунд
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
#include <iostream>
#include <vector>
 
using namespace std;
 
struct cvrs {
    string name;
    int years;
};
 
 
 
int main()
{
    vector <cvrs> vect;
    cvrs check;
    for (int i = 0; i < 3; i++) {
        check.name = "Name";
        check.years = i;
        vect.push_back(check);
        //cout << "\nName: " << vect[i].name << endl;
        //cout << "Age:  " << vect[i].years << endl;
    }
 
for (auto const& v: vect) cout << v.name << " " << v.years << endl;
 
return 0;
}
Name 0
Name 1
Name 2
0
whxz0r
0 / 0 / 1
Регистрация: 28.04.2017
Сообщений: 16
07.07.2017, 08:19  [ТС] #9
Ищу информацию по тексту и заполняю соответствующие поля, нужно сформировать целый список, поэтому и решил использовать данную структуру. Естественно, это всё нужно будет потом обработать и записать в другой файл. Для этого мне и нужно знать как обращаться к элементам и как вообще выводить для проверки.

Добавлено через 1 минуту
Цитата Сообщение от oldnewyear Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
using namespace std;
struct cvrs {
    string name;
    int years;
};
int main()
{
      vector <cvrs> vect;
      cvrs check;
      for (int i = 0; i < 3; i++) {
           check.name = "Name";
           check.years = i;
           vect.push_back(check);
           //cout << "\nName: " << vect[i].name << endl;
           //cout << "Age: *" << vect[i].years << endl;
      }
for (auto const& v: vect) cout << v.name << " " << v.years << endl;
return 0;
}
А это всё приводит к ошибке, что "name" и "years" не являются членами 'const class std::vector<cvrs>'
0
oldnewyear
373 / 361 / 106
Регистрация: 21.05.2016
Сообщений: 1,190
07.07.2017, 08:24 #10
Значит у вас компилятор не поддерживает с++ 11.
Для старых копмиляторов можно так:
C++
1
for (int i = 0; i < vect.size(); i++) cout << vect[i].name << " " << vect[i].years << endl;
Добавлено через 15 секунд
Значит у вас компилятор не поддерживает с++ 11.
Для старых копмиляторов можно так:
C++
1
for (int i = 0; i < vect.size(); i++) cout << vect[i].name << " " << vect[i].years << endl;
0
whxz0r
0 / 0 / 1
Регистрация: 28.04.2017
Сообщений: 16
07.07.2017, 08:26  [ТС] #11
main.cpp:23: ошибка: request for member 'size' in 'vect', which is of non-class type 'std::vector<cvrs> [2]'
C++
1
2
for (int i = 0; i < vect.size(); i++)
                         ^
и те 2 тоже остались
0
oldnewyear
373 / 361 / 106
Регистрация: 21.05.2016
Сообщений: 1,190
07.07.2017, 08:30 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от whxz0r Посмотреть сообщение
main.cpp:23: ошибка: request for member 'size' in 'vect', which is of non-class type 'std::vector<cvrs> [2]'
C++
1
2
for (int i = 0; i < vect.size(); i++)
                         ^
и те 2 тоже остались
C++
1
2
3
vector <cvrs> vect; // без [2]
..
vect.push_back(check); // без [i]
Добавлено через 58 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct cvrs {
    string name;
    int years;
};
 
int main()
{
    vector <cvrs> vect;
    cvrs check;
    for (int i = 0; i < 3; i++) {
        check.name = "Name";
        check.years = i;
        vect.push_back(check);
    }
 
for (int i = 0; i < vect.size(); i++) cout << vect[i].name << " " << vect[i].years << endl;
 
return 0;
}
1
whxz0r
0 / 0 / 1
Регистрация: 28.04.2017
Сообщений: 16
07.07.2017, 08:34  [ТС] #13
Спасибо большое!
0
oldnewyear
07.07.2017, 09:14     Как вывести содержимое структуры-вектора?
  #14

Не по теме:


на питоне ))

Python
1
2
l = [('Name', i) for i in range(3)];
for i in l: print i

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2017, 09:14
Привет! Вот еще темы с ответами:

Как вывести содержимое множества в С++? - C++
У меня создано множество (set) в C++. Скажите, пожалуйста, как вывести все его содержимое на экран?

Копировать содержимое вектора в другой - C++
Дан вектор из строк: vector &lt;string&gt; text_mas; В каждой строке хранятся слова (через пробел или несколько пробелов). Нужно копировать...

А чего не выводится содержимое вектора? - C++
Здравствуйте. Новичок. Задача: Написать функцию которая считывает слова из входного потока и сохраняет их в векторе. Я придумал...

Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных местах - C++
Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных...


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

Или воспользуйтесь поиском по форуму:
14
07.07.2017, 09:14
Ответ Создать тему
Опции темы

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