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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2012, 19:10   #1
Yaroslav992
Новичок
Джуниор
 
Регистрация: 15.09.2012
Сообщений: 4
Печаль работа с STL очередями

Здравствуйте. Есть такой вопрос. Я передаю в функцию две очереди int и возвращаю из функции тоже очередь типа int. Далее мне нужно записать данные из очереди в .txt файл.

пишу:
deque<int> buffer;
......

buffer=adding(deque1, deque2);

но компилятор выдает forbids comparison between integer and pointer.
В книге написано, что операция над очередями с1 = с2 присваивает елементам из с1 значения из с2. Что же не так? Заранее спасибо.
Yaroslav992 вне форума Ответить с цитированием
Старый 15.09.2012, 19:31   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Yaroslav992

В книге написано, что операция над очередями с1 = с2 присваивает елементам из с1 значения из с2. Что же не так?

не так то, что ты неправильно работаешь с очередью

http://codepad.org/i7WosK0x
Rififi вне форума Ответить с цитированием
Старый 15.09.2012, 19:38   #3
Yaroslav992
Новичок
Джуниор
 
Регистрация: 15.09.2012
Сообщений: 4
По умолчанию

Извините, но я не понял, в чем мораль данного кода.
я создаю очередь buffer куда я хочу скопировать данные из очереди, которую я создаю внутри функции adding.
Yaroslav992 вне форума Ответить с цитированием
Старый 15.09.2012, 19:59   #4
Yaroslav992
Новичок
Джуниор
 
Регистрация: 15.09.2012
Сообщений: 4
По умолчанию

вот код main
main()
{ deque<char> buffer;
deque<char>::iterator mine;
deque<int> deque1;
deque<int> deque2;
deque<int> buffer2;
char* sign; char* sign1;


ifstream infile("calc.txt");
istream_iterator<int> fiterato(infile);
istream_iterator<int> end_of_stream;

while(!infile.eof())
{ infile.get(sign1,255);
deque1.push_back((int)*sign1); }

infile.get(sign,5);

while(!infile.eof())
{ infile.get(sign1,255);
deque2.push_back((int)*sign1); }

while(deque1.size()<deque2.size())
deque1.push_front(0);
while(deque1.size()>deque2.size())
deque2.push_front(0);

if(*sign=="+") buffer2=adding(deque1,deque2); // ошибки начинаются здесь
else return 0;
if(*sign=="-") buffer2=minus(deque1,deque2);
else return 0;
if(*sign=="*") buffer2=multiply(deque1,deque2);
else return 0;

ofstream ofile("calc.txt",ios::app);
ostream_iterator<int> foterato(ofile);
ostream_iterator<int> end_of_stream; // some error
copy(foterato, end_of_stream, back_inserter(buffer));

return 0; }
Yaroslav992 вне форума Ответить с цитированием
Старый 15.09.2012, 20:10   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

указатели вы объявили, а память выделять кто будет?
p51x вне форума Ответить с цитированием
Старый 15.09.2012, 20:19   #6
Yaroslav992
Новичок
Джуниор
 
Регистрация: 15.09.2012
Сообщений: 4
По умолчанию

хм.. и правда. спасибо.
Yaroslav992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка работы программы. Работа с библиотекой STL и шаблонами. С ++ Vasyl'eva Помощь студентам 1 25.12.2011 18:39
Работа с классами и STL Blad47 Помощь студентам 3 31.03.2011 01:07
Программа с очередями на Си anuta90 Помощь студентам 5 29.10.2010 07:57
Работа со списками методами STL JeyKip Общие вопросы C/C++ 5 17.12.2009 02:13