Форум программистов, компьютерный форум 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 или right on, на right on игра заканчивается. Чтобы не допустить чтобы Tom обманывал, Jerry записывает цифры и ответы Tom-а. Определите, обманывал Tom, или играл по правилам. Input
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 D=b*b-4*a*c;
C++ Вычислить с заданной точностью значение функции
вот такая задачка..
C++ Ошибка в организации класса http://www.cyberforum.ru/cpp-beginners/thread648907.html
Мои первые попытки написать консольную версию пошагового боя обвенчались неудачей в самом начале. При тестовых ударах в цикле for увидел что очки жизней персонажа не уменьшаются, тк кк задумывалось. Начинаю подозревать что нужно использовать указатели, но это тоже не обвенчалось успехом, посоветуйте пожалуйста что нужно сделать чтобы из класса P2 переменная hp начала уменьшаться а не обнулялась...
C++ Описать функцию, которая формирует список Common В составе программы описать функцию, которая формирует список Common, включив в него элементы, которые входят одновременно в список М1 и М2. Помогите пожалуйста, ибо идей вообще нет, как это сделать... подробнее

Показать сообщение отдельно
AnreyKazakov
Заблокирован
09.09.2012, 15:32  [ТС]     Как вывести номер итератора в стандартный поток cout
Ого, оказывается еще и <iterator> надо подключать...
Еще одна задача, так же с косяком в одном месте, надо сложить первый элемент вектора с последним, второй с предпоследним и т.д , косяк в одном месте, выделил комментарием, так наверно нельзя присваивать, но тогда как?
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 <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){
        iter2=iter2-iter; /*вот здесь вот он ругается*/
        val=*iter+*iter2;
        cout<<"Sum of vec["<<std::distance(vec.begin(),iter)<<"] and vec["<<std::distance(vec.begin(),iter2)<<"] is "<<val<<endl;
        }
        if(iter==iter2) cout<<"vec["<<std::distance(vec.begin(),iter)<<"] no pair. Hi's value "<<*iter<<endl;
    return 0;
    }
Добавлено через 7 минут
Переписал вот так
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 <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()-1;
    vector<int>::iterator iter;
    for(iter=vec.begin();iter<iter2;++iter){
        val=*iter+*iter2;
        cout<<"Sum of vec["<<std::distance(vec.begin(),iter+1)<<"] and vec["<<std::distance(vec.begin(),iter2+1)<<"] is "<<val<<endl;
        --iter2;
        }
        if(iter==iter2) cout<<"vec["<<std::distance(vec.begin(),iter+1)<<"] no pair. Hi's value "<<*iter<<endl;
    return 0;
    }
Но, хотелось бы узнать причину почему прошлый вариант не работал, почему нельзя из одного итератора вычитать другой? Нельзя получается, а хотя можно наверно через ту же функцию distance сделать....

Добавлено через 2 минуты
Чет с итераторами такая муть возиться, с индексами гораздо удобней ИХМО, но в книжке написано что без них никуда ...
 
Текущее время: 10:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru