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

Стандартная библиотека шаблонов STL и класс list по работе с двунаправленным списком - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача структуры в функцию http://www.cyberforum.ru/cpp-beginners/thread208536.html
Как передать структуру в функцию? Вот структура. struct list{ AnsiString name; int num; list *next;}l; list *start=NULL; int num_items=0; Вот функция в которую надо передать void qs_struct(struct list items, int left, int right)
C++ Написать программу с использованием функций При решении задачи должны быть использованы: a) перегрузка функций, b) задание значений по умолчанию (задать свои значения), c) передача параметров по значению и по ссылке. Перегрузку можно осуществить путём создания новой функции, которая возвращает значение не через своё имя, а через параметр-ссылку. Даны действительные числа s, t. Получить f( t, -2s, 1.17 ) + f( 2.2 , t,... http://www.cyberforum.ru/cpp-beginners/thread208532.html
C++ Адреса объектов
Есть некоторое число а типа char с адресом = 0xfff4, и число b типа float = 0xffee. Помогите, пожалуйства, посчитать разницу их адресов
C++ Построение графика функции, задаваемой в символьной строке
Построение графика функции, задаваемой в символьной строке. Само построение графика написал-работает. Вот осталось только организовать распознование функции, задаваемое как строка. Посоветуйте, как это сделать?
C++ Вывести на экран слова, начинающиеся с гласных букв http://www.cyberforum.ru/cpp-beginners/thread208494.html
Написать программу, которая считает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв. можете код написать?
C++ Организовать массив из всех элементов из файла всем доброго времени суток! задали такую задачу: Дан текстовой файл,содержащий неупорядоченные записи элементов (фамилия студента, год рождения, средний бал успеваемости). Необходимо: 1)Организовать массих всех элементов из файла. 2)Создать упорядоченный по фамилии, году, баллу список. 3)Вывести на печать элементы исзодного массива. 4)Вывести упорядоченный список подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9532 / 5525 / 932
Регистрация: 25.07.2009
Сообщений: 10,611
19.12.2010, 06:13
А самому попробовать сделать - не судьба? На форуме можно найти что-то подобное, переделать немного под свою задачу. Правильно, не правильно - не важно. Неудачная попытка - всё-таки не выпрашивание готового решения...
Вот Вам ваша задача, разберитесь хотябы самостоятельно:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <string>
#include <sstream>
 
template <typename T>
class Queue {
    struct Node {
        T val;
        Node * next;
        Node(const T & _val) : val(_val), next(0) {}
    };
 
    Node * first;
    Node * last;
    size_t cnt;
 
    Queue(const Queue & another);
 
public:
    Queue() : first(0), last(0), cnt(0) {}
    ~Queue(){
        while ( first ){
            last = first->next;
            delete first;
            first = last;
        }
    }
    bool empty() const { return ! cnt; }
    size_t size() const { return cnt; }
    void enque(const T & _val){
        Node * n = new Node(_val);
        if ( ! first )
            first = n;
        else
            last->next = n;
        last = n;
        ++cnt;
    }
    T deque(){
        if ( empty() )
            throw ( std::string("Empty queue!") );
        T _val = first->val;
        Node * _next = first->next;
        delete first;
        first = _next;
        --cnt;
        return _val;
    }
};
 
template <typename T>
std::istream & operator >> (std::istream & ist, Queue<T> & q){
    T _val;
 
    ist >> _val;
    if ( ! ist.fail() )
        q.enque(_val);
    return ist;
}
 
template <typename T>
std::ostream & operator << (std::ostream & ost, Queue<T> & q){
    T _val;
    try {
        _val = q.deque();
        ost << _val;
    }
    catch ( std::string e ){
        std::cerr << e << std::endl;
    }
    return ost;
}
 
 
int main(){
    std::string buf;
 
    std::cout << "String: ";
    std::getline(std::cin, buf);
    if ( buf.empty() ){
        std::cerr << "Empty string!\n" << std::endl;
        return 1;
    }
    std::istringstream ist(buf);
    Queue<std::string> q;
    while ( ist >> q )
        ;
 
    if ( q.empty() ){
        std::cerr << "Empty queue!" << std::endl;
        return 1;
    }
 
    if ( ( q.size() > 1 ) && ( q.size() & 1 ) )
        q.deque();
 
 
    std::ostringstream ost;
    while ( ! q.empty() )
        ost << q << ' ';
 
    buf = ost.str();
    buf.erase(buf.size() - 1);
    std::cout << "Result: \"" << buf << "\"" << std::endl;
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru