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

Добавление структурированных данных в дек - C++

Восстановить пароль Регистрация
 
3StYleR
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 26
10.12.2011, 17:19     Добавление структурированных данных в дек #1
Имеется структура
Код:

C++
1
2
3
4
5
6
7
struct stud     
{
        char surname[64];
        int year;
        double mark;
        char gender[1];
};
и stl-дек
Код:

C++
1
deque <stud> dek;
Как в дек добавить данное в поле surname например?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
10.12.2011, 17:53     Добавление структурированных данных в дек #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
33
34
35
#include <iostream>
#include <deque>
using namespace std;
 
struct stud     {
  char surname[64];
  int year;
  double mark;
  char gender[1];
  stud(void){}
  stud(const char* surname) {
       strcpy(this->surname, surname);
  }
  stud(const char* surname, int year, double mark, char ch) {
       strcpy(this->surname, surname);
       this->year = year;
       this->mark = mark;
       gender[0] = ch;
  } 
};
 
 
int main(void) {
  deque<stud> deq;
 
  deq.push_back("Bob");
  deq.push_back(stud("Tom", 24, 45.95, 'X'));
 
  cout << deq.back().surname  << endl;
  cout << deq.front().surname << endl;
 
  deq.clear();
  cin.get();
  return 0;
}
3StYleR
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 26
10.12.2011, 19:10  [ТС]     Добавление структурированных данных в дек #3
Спасибо, а как можно реализовать вывод всех элементов дека?
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
10.12.2011, 19:33     Добавление структурированных данных в дек #4
C++
1
2
3
4
5
6
7
8
9
10
11
// 1-ый способ
for(deque<stud>::const_iterator i = deq.begin(); i != deq.end(); *i++) {
   cout << i->surname << endl;
// cout << i->mark << endl;
}
 
//2-ой способ
for(size_t j = 0u; j < deq.size(); j++) {
     cout << deq[j].surname << endl;
    //...
}
3StYleR
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 26
11.12.2011, 18:34  [ТС]     Добавление структурированных данных в дек #5
Еще такой вопрос, я хочу отсортировать дек по полю year.
Вот накидал код для проверки возможности перестановок, но у меня выдает ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        char snd[64];
        int yeard;
        float markd;
        char gndrd[1];
        int i;
        for(size_t i = 0u; i < dek.size(); i++)
        {
                if (dek[i].year >= dek[i+1].year)
                {
                        strcat(snd, dek[i].surname);
                        yeard =  dek[i].year;
                        markd = dek[i].mark;
                        gndrd[0] = dek[i].gender[0];
                        strcat(dek[i].surname, dek[i+1].surname);
                        dek[i].year = dek[i+1].year;
                        dek[i].mark = dek[i+1].mark;
                        dek[i].gender[0] = dek[i+1].gender[0];
                        strcat(dek[i+1].surname, snd);
                        dek[i+1].year = yeard;
                        dek[i+1].mark = markd;
                        dek[i+1].gender[0] = gndrd[0];
                }
        }
Как можно реализовать сортировку?

Добавлено через 6 часов 16 минут
UP!!!
Yandex
Объявления
11.12.2011, 18:34     Добавление структурированных данных в дек
Ответ Создать тему
Опции темы

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