Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

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

17.03.2013, 21:35. Просмотров 2210. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 21:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как передать итератор в качестве параметра функции? (C++):

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

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

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

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

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

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

5
DU
1483 / 1129 / 45
Регистрация: 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
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
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
SummerRain
326 / 325 / 17
Регистрация: 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
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
17.03.2013, 22:05  [ТС] #5
go, Это весьма странно, я как раз начал именно с вашего варианта, но у меня не работало. Значит где-то тупанул.

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

Добавлено через 3 минуты
SummerRain, что-то у меня вариант с ссылкой не работает
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.03.2013, 22:15 #6
Цитата Сообщение от xtorne21st Посмотреть сообщение
SummerRain, что-то у меня вариант с ссылкой не работает
У него похоже студия. Дело в том, что нужно по значению передавать.
1
17.03.2013, 22:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2013, 22:15
Привет! Вот еще темы с ответами:

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

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

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

Как в макрос в качестве параметра передать строку, содержащую символ запятой? - C++
Помогите ответить на вопрос: Как в макрос в качестве параметра передать строку, содержащую символ запятой?


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

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

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