![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Juster |
|
|||
Unregistered |
Вот вам задачка по STL. Как через алгоритм for_each вывести массив структур на экран, если для этих структур есть оперетор ввода в поток (объявлен как дружественный)?
Тут явно адаптер нужно использовать, но у меня с mem_fun не компилируется. Знаний не хватат |
|||
|
||||
versus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 8.3.2005 Где: Переславль-Залесс кий Репутация: нет Всего: 3 |
хорошая задачка...
Говорят что в Boost можно сказать:
|
|||
|
||||
Juster |
|
|||
Unregistered |
а между тем решение очень простое: std::copy(r.begin(), r.end(), std::ostream_iterator<internal_struct>(std::cout, "\n"));
|
|||
|
||||
Juster |
|
||||
Unregistered |
А вот посложнее задачка, допустим, мне нужно скопировать из вектора
в вектор
по результату определенной ф-ции bool is_correct(const somestruct arg, const string s). Эта ф-ция стравнивает какое-то поле этой структуры (имеющее тип string) с значением s. Как правильно это организовать? |
||||
|
|||||
srd |
|
||||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Функция is_correct имеет такой протип:
т.к. при попытке передавать этой функции параметры по ссылке вылазит ошибка reference to reference is illegal (MSVC++7.1). Эта же ошибка вылазит и при попытке компиляции некоторых примеров из Страуструпа 3ed. Видимо ограничение со стороны компилятора. -------------------- Не смей читать мою подпись!!! |
||||
|
|||||
Void |
|
||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Прототип указан точно? Не
В таком виде ошибку reference to reference is illegal выдает что VC 7.1, что Comeau online. А вот в первоначальном (параметры по значению) VC 7.1 пишет "member function already defined", а Comeau компилит на ура. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||
|
|||||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Прототип указан точно, такой должен компилироваться в MSVC++7.1.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Упс, прошу прощения, невнимательно прочитал сообщение. Да, в таком виде все компилируется, ошибочка вкралась... А параметры по ссылке - недочет существующей STL. Все-таки boost::bind рулит ![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |