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

STL, deque, pair - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка iostream.h http://www.cyberforum.ru/cpp-beginners/thread438520.html
Установил Visual Studio 2008 и при компиляции ошибка с iostream.h #include <iostream.h> // (тоже самое если заменить на "iostream.h") Ошибка 1 fatal error C1083: Не удается открыть файл include: iostream.h: No such file or directory c:\Users\USER\Documents\Visual Studio 2008\Projects\zad_1\zad_1\zad_1.cpp 4 но #include <iostream> // так компилируется
C++ Обработать строку так, чтобы чтобы в ней остались только те слова которые содержат буквы и цифры Привет всем, помогите решить задачу. Обработать строку таким образом чтобы чтобы в ней остались только те слова которые содержат буквы и цифры. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread438489.html
Экономия памяти или борьба с точками. (что-то типа массива ссылок хотелось бы иметь) C++
У меня есть объект Point. И есть Объект Grup. В объекте Grup я выделил динамически память под массив объектов типа Point. Чтоб, как бы Группа точек содержала в себе эти самые точки. Но проблема в том, что точки они как бы созданы отдельно от Grup. Получается, что когда я создаю массив в Grup, то он создает объекты Point и присваивает им уже реальные Point. Вообще в этом нет смысла по...
как поставить EOF? C++
Ребят, подскажите пожалуйста. Итак, вот листинг программы. Если я открываю файл, созданный с помощью потока, все читается без проблем(я так понимаю, символ EOF ставится автоматически). Если же я открываю файл, созданный вот так: создать-тесктовый файл и ввожу в него текст, то потом при попытке чтения из него получается бесконечный цикл(видимо, нельзя найти конец файла). Посоветуйте, пожалуйста,...
C++ Двумерный масив. Экзамен ребята http://www.cyberforum.ru/cpp-beginners/thread438460.html
Дан масив A . Записать в масив числа так чтобы на главной диагонали были записаны 1 , а на остальных 0. Язык С++. Заранее благодарю !
C++ Не могу найти ошибку Вот сама задача: Создайте свою версию библиотечной функции strcmp(s1, s2), которая срав¬нивает две строки и возвращает -1, если s1 идет нерпой по алфавиту, О, если в s1 и s2 одинаковые значения, и 1, если s2 идет первой по алфавиту. Назовите вашу функцию compstr(). Она должна принимать в качестве ар¬гументов два указателя на строки char*, сравнивать эти строки посим¬вольно и возвращать число... подробнее

Показать сообщение отдельно
Visary_Master
 Аватар для Visary_Master
-154 / 16 / 4
Регистрация: 01.12.2010
Сообщений: 297
26.02.2012, 22:55  [ТС]     STL, deque, pair
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
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <deque>
#include <algorithm>
#include <utility>
#include <cstdlib>
using namespace std;
 
template <class Iterator, class T>
Iterator findArg(Iterator first, const Iterator& last, const T& t)
{
    for( ; first != last; ++first)
        if(first -> first == t)
            return first;
    return first;
}
 
template <class T>
struct Comp
{
    bool operator () (const T& f, const T& l)
    {
        return f.second < l.second;
    }
};
std::ostream& operator << (std::ostream& stream, deque<pair<int, int> >& dq)
{
    for(deque<pair<int, int> >::iterator it = dq.begin(); it != dq.end(); ++it)
        stream << it -> first << ' ' << it -> second << std::endl;
    return stream;
}
 
int main()
{
    int mem_size = 5;
    int access_num = 13;
    int array[] = { 1, 2, 3, 4, 5, 2, 3, 4, 1, 5, 4, 1, 3};
 
    // LRU - дольше всех не использовавшаяся
    cout << "LRU" << endl;
    int k = 0;
    deque<pair<int, int> > dq3;
    int count = 0;
    for (int i = 0; i < access_num; ++i)
    {
        for(int k = 0; k < mem_size; ++k) 
        {
            if (i<mem_size)
            {
                cout << "Step " << i << endl;
                dq3.push_back(pair<int, int>(array[i], count));
                count++;
                for (deque<pair<int, int> >::iterator it = dq3.begin(); it != dq3.end(); ++it)
                    cout << it->first << ' ' << it->second << endl;
                break;
            }
            else
            {
                if (i>=mem_size)
                {
                    cout << "Step " << i << endl;
                    deque<pair<int, int> >::iterator f = findArg(dq3.begin(), dq3.end(), static_cast<int>(array[i]));
                    if(f != dq3.end())
                    {
                        f -> second = i + 1;
                        cout << dq3 << endl;
                    }
                    else
                        cout << "No " << array[i] << " in deque" << endl;
                    dq3.push_back(pair<int, int>(array[i], count));
                    // ищем пару с минимальным значением счетчика, чтобы определить страницу
                    // дольше всех не использующихся
                    deque<pair<int, int> >::iterator min = min_element(dq3.begin(), dq3.end(), Comp<pair<int, int> >());
                    dq3.erase(min);
                    for (deque<pair<int, int> >::iterator it = dq3.begin(); it != dq3.end(); ++it)
                        cout << it->first << ' ' << it->second << endl;
                    break;
                }
                break;
            }
        }
    }
    cout << endl;
    return 0;   
}
Вот что у меня получилось, но есть моменты, где счетчик не прибавляется и возникают повторения страниц.
 
Текущее время: 14:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru