интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056

Как передать итератор в качестве параметра функции?

17.03.2013, 21:35. Показов 17999. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
хочу вызвать функцию как-то так:
C++
1
show_string(std::cout, line.begin(), line.end());
в качестве line.begin() и line.end() выступают итераторы на std::list<std::string> line;
Как я не пытался определить параметры для функции, ничего не получается:
C++
1
2
void show_string(std::ostream& stream, std::list<std::string>::const_iterator &i,
        std::list<std::string>::const_iterator &j); // так не работает
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2013, 21:35
Ответы с готовыми решениями:

Как передать слово в качестве параметра функции?
Возможно ли чтобы функция принимала слово, вывела его , и рассчитала его длину? void write(char* word) { cout &lt;&lt;...

Как передать файл в качестве параметра функции
Как передать файл в качестве параметра функции? Напишите пожалуйста на примере функции для вывода файла на экран Буду очень благодарна

Функции: Как передать в качестве параметра число?
Как передать в качестве параметра число? с++

5
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
17.03.2013, 21:41
C++
1
2
void show_string(std::ostream& stream, std::list<std::string>::const_iterator begin,
        std::list<std::string>::const_iterator end);
если не работает, то ошибки в студию. и тип line укажите, а то вдруг это у вас не список строк.
можно еще шаблонную функцию замутить, которая будет работать с любыми итераторами, не только с итераторами от списка.
C++
1
2
template <typename Iter>
void show_string(std::ostream& stream, Iter begin, Iter end);
а еще, возможно пригодится функция вывода списка целиком:
C++
1
void show_string(std::ostream& stream, const std::list<std::string>& lst);
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.03.2013, 21:48
xtorne21st,
C++
1
2
void Show(std::list<std::string>::const_iterator bgn, 
   std::list<std::string>::const_iterator end);
1
 Аватар для SummerRain
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
17.03.2013, 21:56
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <list>
 
void show_string(std::ostream& stream, std::list<std::string>::const_iterator &i,
        std::list<std::string>::const_iterator &j) {
            for (; i != j; ++i)
                std::cout << i->c_str() << " ";
}
 
int main()
{
    std::list<std::string> line;
    line.push_back("No");
    line.push_back("No");
    line.push_back("I");
    line.push_back("will");
    line.push_back("never");
    line.push_back("forget");
    show_string(std::cout, line.begin(), line.end());
    system("PAUSE>0");
    return 0;
}
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
17.03.2013, 22:05  [ТС]
go, Это весьма странно, я как раз начал именно с вашего варианта, но у меня не работало. Значит где-то тупанул.

DU, за шаблон спасибо большое.

Добавлено через 3 минуты
SummerRain, что-то у меня вариант с ссылкой не работает
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.03.2013, 22:15
Цитата Сообщение от xtorne21st Посмотреть сообщение
SummerRain, что-то у меня вариант с ссылкой не работает
У него похоже студия. Дело в том, что нужно по значению передавать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2013, 22:15
Помогаю со студенческими работами здесь

Как передать функции в качестве параметра исполняемый код
Собственно сабж. int main() { z1 = x*x*x+2*x+2; func(z1); } int func()

Как передать метод класса в качестве параметра функции
Это типа &quot;бот&quot;, он работает (&quot;шагает&quot; по заданному полю) #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; ...

Можно ли в качестве параметра функции передать другую функцию?
В ниже представленной программе функция returnMax находит в массиве максимальный элемент и возвращает его. returnMin - делает тоже самое,...

Как передать массив структур в функцию в качестве параметра, чтобы изменения в функции меняли исходный массив?
Допустим есть структура struct Base { int a; int b; int c; }; В основном методе main() объявим массив...

Как передать функцию в качестве параметра?
Помгите плиз, не получается передать одну функцию как параметр другой я пробовал так: в заголовочном файле: typedef double...


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru