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

Как вывести номер итератора в стандартный поток cout - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача: Отгадать цифру, проверить на честность http://www.cyberforum.ru/cpp-beginners/thread648926.html
Описание Tom и Jerry играют в игру на отгадку чисел, Tom загадывает число, а Jerry отгадывает. Область цифр в пределах от 1 до 10. Jerry называет число, а Tom отвечает too high или too low или...
C++ Стек Здравствуйте,помогите найти понятную реализую кода стека с объяснениями.заранее благодарю Добавлено через 27 секунд Не STL http://www.cyberforum.ru/cpp-beginners/thread648922.html
C++ Функция вычисления корней квадратного уравнения
Почему то корни не выводит...что не так? #include "iostream" #include "conio.h" #include "math.h" using namespace std; void root(float a,float b,float c,float &x1,float &x2) { float...
C++ Вычислить с заданной точностью значение функции
вот такая задачка..
C++ Ошибка в организации класса http://www.cyberforum.ru/cpp-beginners/thread648907.html
Мои первые попытки написать консольную версию пошагового боя обвенчались неудачей в самом начале. При тестовых ударах в цикле for увидел что очки жизней персонажа не уменьшаются, тк кк задумывалось....
C++ Описать функцию, которая формирует список Common В составе программы описать функцию, которая формирует список Common, включив в него элементы, которые входят одновременно в список М1 и М2. Помогите пожалуйста, ибо идей вообще нет, как это... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
09.09.2012, 15:39
C++
1
iter2=iter2-iter; /*вот здесь вот он ругается*/
Оператор - для итераторов вернет iterator::difference_type.

In the following sections, a and b denote values of type X or const X, difference_type and reference refer
to the types iterator_traits<X>::difference_type and iterator_traits<X>::reference, respectively,
n denotes a value of difference_type, u, tmp, and m denote identifiers, r denotes a value of X&, t denotes
a value of value type T, o denotes a value of some type that is writable to the output iterator. [ Note: For
an iterator type X there must be an instantiation of iterator_traits<X> (24.4.1). —end note ]
(operation)b - a (returns)difference-type

return n pre: there exists a value n of type difference_type suchthat a + n == b. b == a + (b - a).
Собственно достаточно использовать distance + advance. Ну или +=.

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
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
int main(){
    using std::cout;
    using std::cin;
    using std::endl;
    using std::string;
    using std::vector;
    int val;
    vector<int> vec;
    while(cin>>val)vec.push_back(val);
    vector<int>::iterator iter2=vec.end();
    vector<int>::iterator iter;
    for(iter=vec.begin();iter<iter2;++iter){
        vector<int>::iterator::difference_type diff = std::distance(iter, iter2);
        std::advance(iter2, diff);
        val=*iter+*iter2;
        cout<<"Sum of vec["<<std::distance(vec.begin(),iter)<<"] and vec["<<std::distance(vec.begin(),iter2)<<"] is "<<val<<endl;
        iter2 = vec.begin();
        }
        if(iter==iter2) cout<<"vec["<<std::distance(vec.begin(),iter)<<"] no pair. Hi's value "<<*iter<<endl;
    return 0;
    }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru