Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 274
1

Написание итератора для списка

27.02.2017, 20:16. Просмотров 210. Ответов 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
 
struct link
{
    char data[50];
    char name_zeh[50];
    link* next;
};
 
class linklist
{
 private:
    link* first; // начало списка
    link* rear; // конец списка
 
 public:
    linklist()
    { 
        first = NULL;
        rear = NULL;
    }
    
    void additem(char d[],char e[])
    {
       link *newlink = new link; // новый элемент списка
       strcpy_s (newlink->data,d); // занесение в список имени
       strcpy_s(newlink->name_zeh,e); //доп. инфа
       newlink -> next = NULL;
        
       if (first == NULL) // если список пустой, то в начало
            first = newlink; // first начало списка
       else  rear -> next = newlink; // если список не пустой, то в конец
       
       rear = newlink; // rear конец списка
    }
 
    void search(char w[]) //я пытался... 
    {
      link *temp1 =first;
      while(temp1)
      {
          if(temp1 -> data == w)
          {
              cout<<"Имя рабочего:"<<temp1->data;
              cout<<"Номер цеха:"<<temp1->name_zeh;
          }
          temp1=temp1->next;
      }
    }
Вот главная функция:
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
int main()
{
    setlocale(0,"");
 
 linklist m;
 char a[50];
 char b[50];
 bool c;
 char k[50];
 
 cout<<"Введите имена работников цеха, после ввода имени введите номер цеха. Если захотите закончить, введите - 0:\n";
 
 for(;;)
 {
     cout<<"Введите имя:\n";
     cin>>a;
     if(*a == '0')break;
     cout<<"Введите номер цеха:\n";
     cin>>b;
     m.additem(a,b);
 }
 
 cout<<"Хотите найти рабочего в списке? Да - 1, нет - 0:";
 cin>>c;
 if(c==1)
 {
     cout<<"Введите имя рабочего:";
     cin>>k;
     m.search(k); // здесь пытаюсь вызвать...
 }
 
 system("pause");
 return 0;
 }
Функция search не работает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2017, 20:16
Ответы с готовыми решениями:

Итераторы (пример использования итератора для шаблона, к примеру списка)
Доброго времени суток. Форумчани, приведите пожалуйста пример использования...

Удаление елемента списка с использованием итератора. STL
Надо удалить из списка елементы, значение которых входит в некий диапазон. Я...

итератора для собственного вектора
помогите пожалуйста сделать итератор для вектора template &lt;class T&gt; class...

Класс итератора для класса вектора
Необходимо реализовать собственный класс итератора для прохода по вектору, с...

Использование потокового итератора для пользовательских обьектов
Надо с помощю итератора ofstream_iterator вывести содержимое множины, в которой...

1
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
28.02.2017, 08:55 2
Сто раз объясняли, что сравнение древних строк - strcmp(), а не ==.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2017, 08:55

Создание структуры итератора для работы с файлом
Всем здравствуйте! Пытаюсь создать итератор, чтоб выводить бинарные данные с...

Признак окончания потока для буферного итератора
Собственно надоело вводить ctrl+z для ввода признака окончания потока, засим...

Ошибка в перегрузке операторов для класса - итератора
Добрый вечер. Есть заготовка программы для работы с матрицей, построенной из...


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

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

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