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

Передача списка в функцию

14.04.2013, 17:31. Показов 14238. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать функцию, которая работает одновременно с двумя списками. Как это правильно сделать? Список реализован как класс. Желательно коротенький примерчик, прототип подобной функции. Спасибо!

Добавлено через 19 минут
Ребята, мне просто в двух словах, как передать функции 2 списка, что бы можно было с ними нормально работать. Очень надеюсь на ответ
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2013, 17:31
Ответы с готовыми решениями:

Передача параметров в функцию (сортировка двусвязного списка)
Дан работающий код (двусвязный список+сортировка его пузырьком) Нужно выделенную часть оформить в отдельную функцию. я делаю три...

Передача структуры (двусвязного списка в функцию"
#include<stdio.h> #include<iostream> #include<stdlib.h> using namespace std; struct spisok { int data; spisok*next; ...

Передача списка в функцию
Подскажите пожалуйста как передать выбранные объекты в ну допустим в карзину это нажатие кнопки ...

5
1 / 1 / 1
Регистрация: 10.04.2013
Сообщений: 33
14.04.2013, 17:42
Передать указатели на начало списка, и потом с ним работать.
0
1 / 1 / 0
Регистрация: 08.04.2013
Сообщений: 15
14.04.2013, 17:48  [ТС]
Цитата Сообщение от igormalanyk Посмотреть сообщение
Передать указатели на начало списка, и потом с ним работать.
Дело в том, что если передавать указатели на начало обоих списков, то как потом работать одновременно с двумя списками? Скажем, я передаю два указателя l1 и l2. Как тогда мне работать с такими указателями, как, например, current или next? Мне нужен список как таковой, а не начальный элемент
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
14.04.2013, 17:58
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
#include <iostream>
#include <list>
 
class Foo
{
public:
    std::list<int> int_list;
    std::list<char> char_list;
 
};
 
void Func_add(std::list<int>& il, std::list<char>& cl)
{
    il.insert(il.begin(), 10);
    cl.insert(cl.begin(), 'c');
}
 
void Func_show(std::list<int>::const_iterator ii, std::list<char>::const_iterator ci)
{
    std::cout << *ii << ' ' << *ci  << '\n';
}
 
int main()
{
    Foo obj;
 
    Func_add(obj.int_list, obj.char_list);
 
    std::list<int>::const_iterator int_iter= obj.int_list.begin();
    std::list<char>::const_iterator char_iter = obj.char_list.begin();
    Func_show(int_iter, char_iter);
}
Добавлено через 2 минуты
Можно передать как итераторы так и ссылку на список.
1
1 / 1 / 0
Регистрация: 08.04.2013
Сообщений: 15
14.04.2013, 19:17  [ТС]
Всё равно, не получается, объясню на своём примере.
У меня есть список в виде класса List.
Мне нужно передать в функцию два списка и в функции их объединить в один.
Вот кусок кода:

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
class Elem
{
public:
    int num;
    Elem *next;
    Elem(int n) { num = n; next = NULL; };
};
// Klase List - saistîts vienvirziena saraksts
class List
{
protected:
    Elem *first, *last;
public:
    Elem *current;
public:
    List () { first = last = current = NULL; };
    //void add_element (int n); // pievieno beigâs
    void addToBack(const int value);
    void delete_element (); // izmet no sâkuma
    int is_empty () { return (first == NULL); };
    void start () { current = first; };
    int end () { return (current == NULL); };
    void next(){if (!end())current = current -> next;};
    void print();
    Elem* merge_lists(/*КАК ПЕРЕДАТЬ ДВА СПИСКА СЮДА??*/);
 
    //..........................
 
   int main()
   {
    //................
   }
 
   Elem* List::merge_lists(/*КАК ПЕРЕДАТЬ ДВА СПИСКА СЮДА??*/)
{
    List l3;
    l3.current=l3.first;
    for(l.start(); l.!end(); l.next())
    {
        Elem *p = new Elem (l.current->num);
        if (l3.first == NULL) l3.first = l3.last = p;
        else l3.last = l3.last -> l3.next = p;
        l3.current =p;
 
        //............
    }
}
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
14.04.2013, 19:59
Один список передаётся через указатель this (неявно), а второй как аргумент функции (в виде объекта класса). Т.е. фактически, нужно передать только ссылку или указатель на объект второго списка и добавить к первому второй в самой функции. Почитайте больше классах.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2013, 19:59
Помогаю со студенческими работами здесь

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

Clojure Написать функцию, для замены элементов списка y на соответствующие элементы списка x в списке w
Здравствуйте. Помогите написать функцию, осуществляющую замену элементов списка y на соответствующие элементы списка x в списке w....

Определить в классе статическую компоненту - указатель на начало связанного списка объектов и функцию просмотра списка
Помогите пожалуйста доделать программу. Необходимо определить в классе статическую компоненту - указатель на начало связанного списка...

Описать функцию, которая определяет, входят ли все элементы первого списка в состав второго списка.
Описать функцию, которая определяет, входят ли все элементы первого списка в состав второго списка. на с++

Передача объекта в функцию или функцию друга
Здравствуйте, уважаемые программисты :) К примеру есть такой код. #include &lt;iostream&gt; using namespace std; class My_Class1 { ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru