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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 10:47   #1
heret1c
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 11
Восклицание C++. Необходимо дописать файл foo.h.

Есть пример использования STL. В нем есть заголовочный файл foo.h (успешно потерян). В этом файле должно содержаться описание пользовательского типа данных. Может можно как нибудь этот файл написать с нуля. Если можно, помогите пожалуйста. Программа использующая этот файл:
Код:
#include <iostream>
#include <queue>
#include <stdlib.h>
#include <iterator>
#include <algorithm>
#include <vector>
#include <sstream>
#include "foo.h"
#define MAX 42
int main(int argc, char *argv[])
{
    using namespace std;
    queue<Foo> v;
    for(int i = 0; i < MAX; i++)
    {
        stringstream ss;
        string str;
        ss << rand()%100;
        ss >> str;
        v.push(Foo(str));
    }
    cout << "v output" << endl;
    vector<Foo> tmpv;
    for(int i = 0; i < MAX; i++)
    {
        cout << i << " - "<< v.front().Print() << endl;
        tmpv.push_back(v.front());
        v.pop();
    }
    //cout << endl;
    for(int i = 0; i < 10; i++)
    {
        tmpv.pop_back();
    }
    for(int i = 0; i < 10; i++)
    {
        stringstream ss;
        string str;
        ss << rand()%MAX;
        ss >> str;
        tmpv[rand()%(MAX-10)] = Foo(str);
    }
    for(vector<Foo>::iterator it = tmpv.begin(); it < tmpv.end();++it)
    {
        v.push(*it);
    }

    queue<Foo> v2;
    for(int i = 0; i < MAX; i++)
    {
        stringstream ss;
        string str;
        ss << rand()%100;
        ss >> str;
        v2.push(Foo(str));
    }
    tmpv.erase(tmpv.begin()+5,tmpv.begin()+5+7); // delete
    for(vector<Foo>::iterator it = tmpv.begin(); it < tmpv.end();++it)
    {
        v.push(*it);
    }
    tmpv.clear();
    //copy(v2.begin(),v2.end(),back_inserter(v)); // v+v2
    while(!v2.empty())
    {
        v.push(v2.front());
        tmpv.push_back(v2.front());
        v2.pop();
    }
    for(vector<Foo>::iterator it = tmpv.begin(); it < tmpv.end();++it)
    {
        v2.push(*it);
    }
    cout << "first" << endl;
    int i = 0;
    for(int i = 0; i < MAX; i++)
    {
        cout << i << " - "<< v.front().Print() << endl;
        v.pop();
    }
    cout << "second" << endl;
    i = 0;
    for(int i = 0; i < MAX; i++)
    {
        cout << i << " - "<< v.front().Print() << endl;
        v.pop();
    }
}
heret1c вне форума Ответить с цитированием
Старый 27.05.2013, 11:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
успешно потерян
Не расстраивайся, в следующий раз хранить будешь надежнее
Забей - восстановлению не подлежит. Прогу можещь выкинуть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2013, 11:25   #3
heret1c
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как написать свой класс? И заюзать его в программе
heret1c вне форума Ответить с цитированием
Старый 27.05.2013, 11:38   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
А как написать свой класс? И заюзать его в программе
Возьмите учебник и прочитайте. То количество букв, которое нужно написать на форуме для достижения того же эффекта, не влезет и в пять сообщений.
Цитата:
Может можно как нибудь этот файл написать с нуля. Если можно, помогите пожалуйста.
Можно-то можно (в смысле, написать такой foo.h, чтобы приведённый код имел смысл), но вот будет ли оно тем чем надо...
Код:
#ifndef __FOO_H
#define __FOO_N

#include <string>

class Foo {
  std::string m_str;
public:
  explicit Foo(const std::string& str): m_str(str){}
  const std::string& Print(void) const {return m_str;}
};

#endif
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо дописать раскрытие скобок с операциями xor и коконъюнкция vadiprog Фриланс 2 19.11.2012 00:09
Дописать файл Mrbober Общие вопросы Delphi 4 17.10.2011 22:38
Необходимо дописать и поправить парсер!!! maks1985 Фриланс 4 31.05.2010 14:40
Необходимо дописать простой скрипт на PHP+Mysql kutt Фриланс 8 08.10.2009 13:09
Необходимо дописать скрипт на PHP.... kutt Фриланс 2 01.04.2009 20:50