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

Односвязный список и оператор индексирования [] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сумма найденной переменой http://www.cyberforum.ru/cpp-beginners/thread574283.html
В переменной нашел разность чисел, при каждой итерации значение m принимает разное значение, допустим m=0.10, при след. итерации m=3.0. Нужно найти сумму всех полученных значений m, поделенную на 100. Т.е. нужно как то в одномерный массив занести все наши значения m и сложить? for (l=1;l<=30;l+=2) m=fabs(A-grand)
C++ что делать если выдает такую ошибку? --------------------Configuration: 5 - Win32 Debug-------------------- Compiling... 5.cpp h:\5\5\5.cpp(21) : fatal error C1010: unexpected end of file while looking for precompiled header directive Error executing cl.exe. 5.exe - 1 error(s), 0 warning(s) http://www.cyberforum.ru/cpp-beginners/thread574281.html
Определить сумму набранных абитуриентом баллов C++
помогите известны оценки абитуриентов на четырех экзаменах . определить сумму набранных им баллов
C++ Одномерные массивы, не сложные задачи
Кому не сложно, помогите написать программу хотя бы для одной из этих задач. 1. В заданом массиве с n действительных чисел найти индексы всех целых чисел. 2. В заданом массиве с 20-ти целых чисел найти среднее ариф. 10 наибольших элементов. Приветствуется так же сам код обработки массива. Заранее благодарна)))
C++ std::deque http://www.cyberforum.ru/cpp-beginners/thread574220.html
Как известно при добавлении в конец вектора элементов(и не только в конец) может возникнуть перераспределение памяти что переместит данные в другое место и сделает недействительным итераторы,ссылки и указатели на эти данные. Вопрос в замене: что бы уйти от этой проблемы можно ли применить std::deque, выполняет ли он перераспределение памяти? Про std::deque можно прочитать что память...
C++ Динамические структуры данных(не понял как) Разработайте динамическую структуру для решения задачи. Даны целые числа p и q. Получить все делители числа q, взаимно простые с числом p. подробнее

Показать сообщение отдельно
tytus
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 15
15.05.2012, 12:38  [ТС]     Односвязный список и оператор индексирования []
а как обойтись без шаблонов?
Вот так не работает:
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
// ListTest.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
class TPanel
{
public:
    TPanel(int width){m_Width = width;};
    ~TPanel();
    int m_Width;
    int GetWidth(){return m_Width;};
    void SetWidth(int newWidth){m_Width = newWidth;};
    __declspec(property(get=GetWidth, put=SetWidth)) int Width;
};
 
class TPanelNode
{
public:
    TPanelNode(){pNext = nullptr;};
    ~TPanelNode();
    TPanelNode* pNext;  
    TPanel* Panel;
    TPanel& GetPanel(){return *Panel;};
};
 
class TPanelsList
{
public:
    TPanelsList(){pHead = nullptr; m_Count = 0;};
    ~TPanelsList();
    void AddPanel(int width);
    const TPanel& operator[](int Index) const;
    int GetCount(){return m_Count;};
    __declspec(property(get=GetCount)) int Count;
private:
    TPanelNode* pHead;
    int m_Count;
};
 
void TPanelsList::AddPanel(int width)
{
    if (!pHead)
    {
        pHead = new TPanelNode();
        pHead->Panel = new TPanel(width);
    }
    else
    {
        TPanelNode* pTemp = pHead;
        while (pTemp->pNext)
            pTemp = pTemp->pNext;
        pTemp->pNext = new TPanelNode;
        pTemp = pTemp->pNext;
        pTemp->Panel = new TPanel(width);       
    }
    ++m_Count;
}
 
const TPanel& TPanelsList::operator[](int Index) const
{
    int indx = Index;
    TPanelNode* pTemp = pHead;
    while (indx > 0)
    {
        if (pTemp->pNext)
            pTemp = pTemp->pNext;
        else
            break;
        --indx;
    }
    return pTemp->GetPanel();
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    TPanelsList* PanelsList = new TPanelsList();
    std::cout << PanelsList->Count << "\n";
    PanelsList->AddPanel(20);
    std::cout << PanelsList->Count << "\n"; 
    PanelsList->AddPanel(30);
    std::cout << PanelsList->Count << "\n";
    std::cout << "Panel1 width: " << PanelsList[0]->Width << "\n";
    
 
    std::cin.get();
    return 0;
}
Добавлено через 1 минуту
C++
1
PanelsList[0]->Width
ругается: "Выражение должно иметь тип указателя"
 
Текущее время: 01:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru