Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 15
1

Как обратиться к элементу списка

06.11.2018, 09:05. Показов 790. Ответов 3
Метки нет (Все метки)

У меня есть список, в нём присутствует 4 позиции: Имя файла, размер, таймер-счётчик и флаг.
Меня вот, что интересует. Я этот список постоянно анализирую, и должен при каждом проходе одного и того же файла, сравнивать предыдущие и настоящие значение размера файла, и ещё внести в список новое. Но я не очень понимаю, как мне вызвать предыдущее значение размера из списка.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2018, 09:05
Ответы с готовыми решениями:

Как обратиться к элементу списка?
Подскажите как автоматически (в цикле например) обратиться к члену списка. Список выглядит так:...

Как обратиться к следующему элементу списка?
#include <iostream> using namespace std; template <typename T> class List { struct...

Как обратиться к элементу списка list ?
list<int> a;

Двусвязный список. Как обратиться к первому элементу списка
Добрый день. Есть программа, для которой нужно сделать функцию FindMin, которая бы находила...

3
Модератор
Эксперт С++
10530 / 8752 / 5293
Регистрация: 18.12.2011
Сообщений: 23,413
06.11.2018, 10:26 2
Приведите получившийся код.

В какой контейнер Вы записываете это список?
list?
Размер контейнера возвращает метод size().
0
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 15
06.11.2018, 16:16  [ТС] 3
Вот так, но я вообще не уверен. Так как основа не моя, я её только переделываю для себя, в рамках обучения. Ещё она не дописана.

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
#include <iostream>
#include <list>
#include <fstream>
#include <iterator>
#include <algorithm>
using namespace std;
 
struct element
{
    char name[];               /* посмотретьт и заменить на string */
    unsigned short int timer;
    unsigned long int file_size;
    bool flag;
        
};
class List                                                                                    /* Класс список */
{
    element *Head;                                                                            /* Указатель на последний активный элемент */
    public:
    List(){Head = NULL;}                                                                      /* Конструктор и инициализация указателя пустым значением */
    ~List();                                                                                  /* Прототип деструктора */
    void Add(char name, unsigned short int timer, unsigned long int file_size, bool flag);    /* Прототип функции добавления значения в список */ 
}
List::~List()                                                                                 /* Деструктор вынесен за класс */
{
    while(Head != NULL)                                                                       /* Пока по адресу ну пусто */
    {
        element *temp = Head -> Next;                                                         /* Временная переменная для хранения адреса следующего элемента */
        delete Head:                                                                          /* Освобождаем адрес обозначающий начало */
        Head=temp;                                                                            /* Меняем адрес на следующий */
    }
}
void List::Add(char name, unsigned short int timer, unsigned long int file_size, bool flag);
{
    element *temp = new element;                                                          /* При какждом вызове выделяется память */
    temp -> name = name;                                                                  /* Записываем name в элемент структуры element */
    temp -> timer = timer;                                                                /* Записываем timer в элемент структуры element */
    temp -> file_size = file_size;                                                        /* Записываем file_size в элемент структуры element */
    temp -> flag = flag;                                                                  /* Записываем flag в элемент структуры element */
    temp -> Next = Head;                                                                  /* Указываем,что след. элемент это обьект по адресу Head */
    Head = temp;                                                                          /* Указываем, что последний активный элемент это только что введенный */
}
template <class InputIterator, class T>
void find_list(InputIterator first, InputIterator last, const T& value) {
    auto p = find(first, last, value);
}
int main(int argc, char* argv[])
{
    List lst;
    WIN32_FIND_DATA FindFileData;   
    HANDLE hf;
    hf = FindFirstFile("C:\\Users\\Admin\\Local Settings\\Application Data\\Google\\Chrome\\User Data\\Default\\Cache\\*.*",&FindFileData); 
    SetCurrentDirectory("C:\\Users\\Admin\\Local Settings\\Application Data\\Google\\Chrome\\User Data\\Default\\Cache");
    find_list(begin(lst),end(lst),FindFileData.cFileName);                                /* Ищем совпадение по имени файла в списке */
        if(p == last){                                                                    /* Если совпадений нет */
            name = FindFileData.cFileName;
            lst.Add(name);                                                                /* Заносим имя в список */
            unsigned short int timer = 0;                                                 /* Обнуляем все переменные для списка */
            unsigned long int file_size = 0;
            bool flag = 0;
        }
        else{
            if(flag == 0){                                                                 /* Проверяем, обрабатывается ли файл */
                file_size = filesize(FindFileData.cFileName);                              /* Ищем размер файла */
                lst.Add(file_size);
                if(
0
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 15
07.11.2018, 11:44  [ТС] 4
Пока не смотрите на это бред, я по другому переделываю, но вопрос всё тот же остаётся.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2018, 11:44

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как обратиться к элементу вектора?
Помогите пожалуйста cout &lt;&lt; &quot;Введите размерность массива\n&quot;; int n; cin &gt;&gt; n;...

Как обратиться к элементу структуры в классе
есть класс #include &lt;iostream&gt; class bayer { public: bayer(); bayer(const char *name,...

Как обратиться к следующему элементу в std::list?
Добрый день. Пусть у меня есть список std::list&lt;int&gt; l; Есть итератор it, указывающий на элемент...

Как с указателем обратиться к 4му элементу массива
Имеем массив из 50 элементов. Как с помощью указателей обратиться к 4му элементу массива?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.