Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2011, 19:22   #1
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
Печаль Проблема с итератором(вроде)

Код программы:
Код:
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main()
{

    string dict_name="basa.txt";
    ifstream file(dict_name.c_str());
    if (file.is_open()) {
        vector<string> a;
        typedef istreambuf_iterator<string> iter;
        copy(iter(file),iter(),back_inserter(a));
        for(iter(cin) i; i!=iter(); ++i) {
          cout<<a[i]<<"  ";
        }
    }
    return 0;
}
Ошибки вылазающие:
Код:
\main.cpp|15|error: 'i' was not declared in this scope|
\main.cpp|14|error:   initializing argument 1 of 'std::istreambuf_iterator<_CharT, _Traits>::istreambuf_iterator(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Traits = std::char_traits<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'|
\main.cpp|15|error: invalid conversion from 'void*' to 'std::basic_streambuf<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::char_traits<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*'|
\main.cpp|15|error:   initializing argument 1 of 'std::istreambuf_iterator<_CharT, _Traits>::istreambuf_iterator(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Traits = std::char_traits<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'|
\main.cpp|15|error: expected ';' before 'i'|
\main.cpp|15|error: 'i' was not declared in this scope|
В чем здесь проблема?Подскажите пожалс-та...
monolit111 вне форума Ответить с цитированием
Старый 29.10.2011, 19:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я знаю итератор является указателем, и его нужно разименовывать а не использовать в качестве индекса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2011, 22:39   #3
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
По умолчанию

точно, я еще и библиотеку подключить забыл))Спасибо)
monolit111 вне форума Ответить с цитированием
Старый 29.10.2011, 23:31   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Stilet

Насколько я знаю итератор является указателем, и его нужно разименовывать а не использовать в качестве индекса.

Стандарт C++ не указывает, как именно должен быть реализован итератор - через указатель илл что-то еще. От итератора требуется как минимум поддержка операции разыменования (*)
Соответственно, завязываться на особенности конкретной реализации == производить говнокод.

monolit111

В чем здесь проблема?Подскажите пожалс-та...

неправильно почти все - отсутствует включение хэдера itertor, неправильный тип итератора, неправильная инициализация в цикле, неправильный доступ в теле цикла.
Rififi вне форума Ответить с цитированием
Старый 30.10.2011, 11:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Соответственно, завязываться на особенности конкретной реализации == производить говнокод.
Ну да... Неудачно высказался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки, вроде легко Чуччи Помощь студентам 1 26.11.2010 17:02
Программа вроде аськи FACE OFF Помощь студентам 2 20.10.2010 07:37
Вроде бы проблема в Cookie ... FlorentOFF Работа с сетью в Delphi 2 23.01.2010 20:14
Вроде бы элементарно, но... aleks_grey Помощь студентам 7 15.07.2007 11:14
Сдвиги и циклы ...вроде Magnit Паскаль, Turbo Pascal, PascalABC.NET 1 01.06.2007 01:01