Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 15

Идентификаторы списка в качестве аргументов функции

10.06.2013, 20:35. Показов 765. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу организовать поиск по списку с помощью функции, в которую бы передавались: поле, по которому искать (собсно какая-то переменная из списка) и значение, которое искать. Никак не могу понять, как такое притворить в жизнь?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.06.2013, 20:35
Ответы с готовыми решениями:

Функции с указателями в качестве аргументов
Не могу понять почему происходит Segmentation fault при работе с указателями в некоторых случаях, например, таких как ниже: Задача:...

Использование массивов в качестве аргументов функции
Написала программу, работает правильно, только не совсем по условию задачи. Помоги пожалуйста исправить. Условие: найти наибольшую...

Использование массивов в качестве аргументов функции

5
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
10.06.2013, 22:44
Делаете функцию-итератор - проход по всему списку. Передаете ей значение ключа и указатель на функцию сравнения. Для каждого элемента списка, итератор вызывает функцию сравнения этого элемента с ключом.

И еще, на досуге, орфографический словарь почитайте. Чтобы не "притворять в жизнь"
0
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 15
12.06.2013, 10:59  [ТС]
Спасибо за ответ и совет. Возник вопрос, что такое значение ключа?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
12.06.2013, 13:07
Цитата Сообщение от Jazzis Посмотреть сообщение
поле, по которому искать
Это и есть значение ключа
0
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 15
13.06.2013, 09:56  [ТС]
Переделал я функцию, теперь в нее передается только само поле. Выглядит так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void search (char* db)
{
    char i[150];
    cout << "Enter a string for search: ";
    cin >> i;
    struct List *curr;
    curr = head;
    while  (curr != NULL)
    {
        cout << "db == " << db << endl;
        if (strcmp(db, i)==0)
        {
            printf("%d %s\n",curr->person.data,db);
        }
        curr = curr->next;
    }
}
Но я не могу понять как правильно ей передать поле, по которому надо искать. Если делаю db как struct List, то ругается на то, что не может конвертировать char в List*. Если делаю char* как сейчас, то db всегда равен последнему элементу списка, а попытка указать db, где первый элемент приводит к ошибке (ругается что db типа char*, а head типа List*).
Передаю такой вот аргумент:
C++
1
search(db->person.fio);
Т.к. структуры у меня объявлены таким образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct Person {
    int data;
    int id;
    char* fio;
    int age;
    char* prof;
    char* party;
    int number;
    bool sud;
};
 
struct List 
{
    Person person; 
    struct List *next; 
} *head = NULL;
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
13.06.2013, 13:40
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool Compare(Person* pItem,Person* pKey)
{
   return strcmp(pItem->StrField,pKey->StrField);
}
 
Person   Key;
 
memset(&Key,0,sizeof(Key));
 
Key.SmthField = MyValue;
 
foreach(/* in the List */)
{
   if (!Compare(pItem,&Key))
   {
      DoSmth();   
   }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2013, 13:40
Помогаю со студенческими работами здесь

Структура в качестве аргументов функции
здравствуйте, подскажите вот такая фиговина будет работать? struct A{ float x, y; }; struct B{ float Ox,...

Указатели или ссылки (в качестве аргументов функции) ?
В каких случая надо использовать ссылки и в каких указатели в качестве аргументов функции? В общем поняла, что и те и другие полезны для...

Ostream и ofstream в качестве аргументов полиморфной функции
Здравствуйте! Перегрузил оператор &lt;&lt; с ostream и ofstream для пользовательского класса. ofstream &amp;operator &lt;&lt; (ofstream...

Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов
Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов. Если аргумент только один,...

Дан файл, переписать его в обратном направлении, передавая имена файлов в качестве аргументов функции main
Здравствуйте! Помогите, пожалуйста! Дан файл, переписать его в обратном направлении, передавая имена файлов в качестве аргументов функции...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru