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

Функция, дружественная классу, вложенному в шаблонный класс, или как написать итератор. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задача на Строки http://www.cyberforum.ru/cpp-beginners/thread427409.html
Написать программу которая удаляет из введенной с клавиатуры строки начальные пробелы
C++ Обработка матриц Добрый день, помогите. Дана целочисленная матрица MxN.Найти элемент,являющийся максимальный в своей строке и минимальный в своем столбце http://www.cyberforum.ru/cpp-beginners/thread427405.html
C++ Программа про счастливые билеты. Не работает.
#include "stdafx.h" #include <iostream> #include <clocale> using namespace std; void Input(int &N1, int &N2) { cout << endl << "vvadite nachalniy nomer: "; cin >> N1;
Переставить максимальный и минимальный элементы в массиве. C++
Добрый день, помогите. Переставить максимальный и минимальный элементы в массиве.
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread427402.html
Добрый день, помогите пожалуйста с задачей. Поменять местами строки матрицы с номерами i и j
C++ Программа зацикливается при изменении всех 2 на 2 void ExchangeWord(List **ListPtr, int pozition, char *word){ //заменяет слово на позиции if(*ListPtr!=NULL){ // условие завершения рекурсивного спуска if((*ListPtr)->pozition!=pozition) ExchangeWord(&((*ListPtr)->next),pozition,word); // рекурсивный вызов функции else{ strcpy((*ListPtr)->word,word); } } } как сделать так подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
13.01.2012, 14:38
Слишком много тут шаблонной магии... Возможно, лучше будет описать итератор полностью отдельно от вектора.

Добавлено через 10 минут
Т.е. так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
 
template<typename T>
class Iterator;
 
template<typename T>
Iterator<T> operator+(const Iterator<T>& a, const Iterator<T>& b);
 
template<typename T>
class Iterator
{
public:
    friend Iterator<T> operator+<T>(const Iterator<T>& a, const Iterator<T>& b);
};
 
template<typename T>
Iterator<T> operator+(const Iterator<T>& a, const Iterator<T>& b)
{
    std::cout << "Iterator::operator+" << std::endl;
    
    return a;
}
 
template<typename T>
class Vector
{
public:
    typedef Iterator<T> iterator;
};
 
int main ()
{
  Vector<int>::iterator a, b;
  
  a + b;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru