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

STL и ostream_iterator - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отследить ошибку http://www.cyberforum.ru/cpp-beginners/thread1024980.html
Помогите найти ошибку в программе. #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv) { int n = 0, k = 0, i, r, j = 0, q1, q2, *a; a = new int ; double p; for(k = 10; k<100; k++){
C++ Создание дерева Помогите написать функцию создания дерева, заполняющуяся по порядку ввода элементов с лева на право http://www.cyberforum.ru/cpp-beginners/thread1024974.html
Компилятор и среда разработки. Какие лучше новичку? C++
Посоветуйте среду разработки с подсветкой синтаксиса для С++. И компилятор тоже. Пробовал Visual 2010, но как его запустить, где он вообще?
C++ Выделение памяти
int main() { FILE *fIn = NULL, *fOut =NULL; Error EMyError; CNodeStack *Start; CNodeStack *ListF = new CNodeStack; ListF->next = NULL; Start = ListF; //.................................... delete ListF;
C++ Перегрузка операций и функций http://www.cyberforum.ru/cpp-beginners/thread1024962.html
Выполнить перегрузку перечисленных операций, закрепив за ними соответствующий функциональный смысл. Прямоугольная матрица +/- сложение/вычитание двух матриц,*умножение двух матриц
C++ Вывод на экран корневого каталога Доброго времени суток, как на С++ написать, чтобы вывело на экран содержимое корневого каталога. Спасибо подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
01.12.2013, 22:12     STL и ostream_iterator
Видимо, проблема в том что operator << находится с std::pair в разных пространствах имён, и оператор вызывается мз std. "Хак" на скорую руку:
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 <iterator>
#include <set>
 
struct Point : std::pair<int, int> {
    
   using pair<int, int>::pair;
};
 
std::ostream& operator<<(std::ostream& o, const Point& p) {
  return o << p.first << ' ' << p.second;
}
 
 
int main()
{
    std::set<Point> s;
    s.insert( Point(2,2) );
    s.insert( Point(3,3) );
    s.insert( Point(2,3) );
    s.insert( Point(4,4) );
    std::copy(s.begin(), s.end(), std::ostream_iterator<Point>(std::cout, "\n"));
}
http://ideone.com/95d2oE

Добавлено через 58 секунд
Цитата Сообщение от Jupiter Посмотреть сообщение
ну так реализуй оператор меньше или напиши свой компаратор
Он же для pair определён уже.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru