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

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

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

Студворк — интернет-сервис помощи студентам
хочу вызвать функцию как-то так:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2013, 21:35
Ответы с готовыми решениями:

Как передать слово в качестве параметра функции?
Возможно ли чтобы функция принимала слово, вывела его , и рассчитала его длину? void...

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

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

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

5
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
17.03.2013, 21:41 2
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 3
xtorne21st,
C++
1
2
void Show(std::list<std::string>::const_iterator bgn, 
   std::list<std::string>::const_iterator end);
1
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
17.03.2013, 21:56 4
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  [ТС] 5
go, Это весьма странно, я как раз начал именно с вашего варианта, но у меня не работало. Значит где-то тупанул.

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

Добавлено через 3 минуты
SummerRain, что-то у меня вариант с ссылкой не работает
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.03.2013, 22:15 6
Цитата Сообщение от xtorne21st Посмотреть сообщение
SummerRain, что-то у меня вариант с ссылкой не работает
У него похоже студия. Дело в том, что нужно по значению передавать.
1
17.03.2013, 22:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2013, 22:15
Помогаю со студенческими работами здесь

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

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

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

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

Как передать в качестве параметра конструктора ПОТОК,
Здравтсвуйте. Есть класс Notebook(); Один из конструкторов принимает в качестве параметра...

Как передать значение параметра функции одного экзешника значению параметра функции другому екзешнику?
Здравствуйте! Ребята подскажите по такому вопросу. У меня есть консольное приложение в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru