0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 9
1

Алгоритм copy

17.11.2015, 16:42. Показов 1233. Ответов 6
Метки нет (Все метки)

У меня есть вектор указателей vector<cString *> (cString - это мой класс), подскажите, можно ли вывести вектор в консоль, однако нужно что бы выводились разыменованные элементы ?
Я выводил вот так
C++
1
copy(File_Data.begin(), File_Data.end(), std::ostream_iterator<cString>(std::cout, " ") );
однако очевидно, что выводятся адреса, а не значения.
В классе перегружен оператор <<

Добавлено через 7 минут
Опечатка в сообщении
C++
1
copy(File_Data.begin(), File_Data.end(), std::ostream_iterator<cString *>(std::cout, " ") );
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2015, 16:42
Ответы с готовыми решениями:

алгоритм copy
copy(v.begin(), v.end(), ostream_iterator&lt;char&gt;(cout, &quot; &quot;)); - копирует последовательность...

STL. Алгоритм copy()
Здравствуйте. Решаю задачку из учебника лафоре. Звучит она следующим образом: Алгоритм copy()...

Алгоритм copy и итераторы вставки
Добрый день! Есть программа, она копирует заданный диапазон вектора и вставляет этот диапазон в...

Алгоритм copy, back_inserter и vector
Здравствуйте. Решил подробней пройтись по STL. Заинтересовал такой момент. Применяю алгоритм copy к...

6
2753 / 1908 / 568
Регистрация: 05.06.2014
Сообщений: 5,559
17.11.2015, 16:46 2
C++
1
2
3
4
5
6
if(!File_Data.empty())
{
    cout<<*File_Data.front();
    for(auto pos=++File_Data.begin();pos!=File_Data.end();++pos)
        cout<<" "<<**pos;
}
1
0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 9
17.11.2015, 17:01  [ТС] 3
Это понятно, но можно ли как то с помощью copy это сделать ?
0
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
17.11.2015, 17:02 4
Лучший ответ Сообщение было отмечено Anton34 как решение

Решение

cString* и cString это два разных типа.
C++
1
2
3
4
5
std::ostream& operator<<(std::ostream& stream, const cString* value)
{
    stream << *value;
    return stream;
}
1
83 / 10 / 8
Регистрация: 17.11.2015
Сообщений: 39
17.11.2015, 17:03 5
C++
1
2
3
std::for_each(File_Data.begin(), File_Data.end(), [](cString const * const str) {
    std::cout << *str << " ";
});
0
0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 9
17.11.2015, 17:09  [ТС] 6
Точно! Как то я даже до этого не догадался. Спасибо!
0
83 / 10 / 8
Регистрация: 17.11.2015
Сообщений: 39
17.11.2015, 17:12 7
Цитата Сообщение от Anton34 Посмотреть сообщение
Это понятно, но можно ли как то с помощью copy это сделать ?
Можно, переопределив оператор << для указателей на Ваш тип, как Вам посоветовали выше. Но это не самая лучшая идея с идеологической точки зрения. Если я вывожу указатель, то я ожидаю, что мне выведется указатель (то есть адрес), а не то, что по этому указателю лежит. Но технически это возможно, да.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2015, 17:12
Помогаю со студенческими работами здесь

Deep copy and Shadow copy
Этот проект компилируется нормально. И функциональность всех элементов на первый взгляд нормальная....

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

Перегрузка copy()
Здравствуйте, уважаемые. Пробую создать копию библиотечной функции copy(): template&lt;class Iter1,...

std::copy
typedef std::list&lt;size_t&gt; Path; Path::iterator _it; Path path; std::copy( _it, path.end(),...

Copy constructor
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace::std; class alpha{ int data; public:...

Вывод с copy
Не могли бы вы показать/рассказать про вывод, например, массива, с использованием не std:: cout &lt;&lt;...


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

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

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