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

Переопределение размера массива указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение файлов - исправить ошибки в коде http://www.cyberforum.ru/cpp-beginners/thread1241114.html
Добрый день. Возникла проблема, с которой раньше не сталкивался: файл не открывается. Искал с интернете, в учебниках, в предыдущих программах, которые писал - ничего не работает. #include...
C++ Создать класс, в котором можно сохранить любой вызываемый объект или функцию Возникла идея создать класс, в котором можно сохранить любой вызываемый объект или функцию. Что то наподобие std::function, но только не параметризирован, с использованием технологии Type Erasure.... http://www.cyberforum.ru/cpp-beginners/thread1241101.html
C++ Error LNK2019: ссылка на неразрешенный внешний символ
Здрасте, Потребовалось вызвать dll из другой папки, пришлось переписывать импорт под динамический вызов, но тут полезли ероры. myIDirect3DDevice9.obj : error LNK2001: неразрешенный внешний символ...
Односвязный список: В чём разница между struct и class? C++
После неудач работы с Vector, а так же отсутствия (Хотя, скорее всего, я просто плохо искал) хорошей русской документации по нему, решил запилить свой велосипед с самоваром и тёрками. Список состоит...
C++ Создание и удаление объекта. Ошибка 134 в Linux http://www.cyberforum.ru/cpp-beginners/thread1241052.html
Имеется следующий класс class BoardView { private: Board *brd; void Show(); public:
C++ Как разделить результат, возвращаемый Multi curl? 1)Я вообще непонимаю зачем нужна функция static int writer(char *data, size_t size, size_t nmemb, string *buffer) как по мне делает какую-то ерунду. 2) На php курл реализован как-то лучше))... подробнее

Показать сообщение отдельно
Iksyara
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 3
05.11.2014, 23:57
Все исправил. Спасибо за тыканье носом в мои ошибки)))

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
#pragma once
#include <Windows.h>
 
template <class T>
class cMass
{
public:
    cMass()
    {
        m_count = 0;
        m_mass = NULL;
    }
    ~cMass()
    {
        RemoveAll();
    }
    void Add(T* data, int id = -1)
    {
        int iID = id;
        if(id < 0 || id > m_count) iID = m_count;
 
        T** temp = new T*[m_count+1];
 
        for(int i = 0; i < iID; i++)
            temp[i] = m_mass[i];
 
        temp[iID] = new T(*data);
 
        for(int i = iID; i < m_count; i++)
            temp[i+1] = m_mass[i];
 
        m_count++;
        delete [] m_mass;
        m_mass = temp;
    }
    int Remove(int id)
    {
        if(id < 0 || id >= m_count) return 1;
 
        T** temp = new T*[m_count-1];
 
        for(int i = 0; i < id; i++)
            temp[i] = m_mass[i];
 
        for(int i = id; i < m_count-1; i++)
            temp[i] = m_mass[i+1];
 
        delete m_mass[id];
        m_count--;
 
        delete [] m_mass;
        m_mass = temp;
 
        return 0;
    }
    void RemoveAll()
    {
        for(int i = 0; i < m_count; i++)
            delete m_mass[i];
        delete [] m_mass;
 
        m_mass = NULL;
        m_count = 0;
    }
    int Swap(int id1, int id2)
    {
        if(id1 < 0 || id1 >= m_count) return 1;
        if(id2 < 0 || id2 >= m_count) return 2;
 
        T* temp = m_mass[id1];
        m_mass[id1] = m_mass[id2];
        m_mass[id2] = temp;
 
        return 0;
    }
    T* operator[](int id) const
    {
        if(id < 0 || id >= m_count) return NULL;
        return m_mass[id];
    }
    int Count()
    {
        return m_count;
    }
private:
    int         m_count;
    T**         m_mass;
};
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
#include <iostream>
#include "cMass.h"
 
struct s_data
{
    wchar_t     name[255];
};
 
cMass<s_data> mass;
 
void Print()
{
    for(int i = 0; i < mass.Count(); i++)
        std::wcout << i << L" - " << mass[i]->name << std::endl;
}
 
int main()
{
    wchar_t buff[255];
    s_data data;
 
    std::wcout << L"*****|dobavili 5 chelovek|*****" << std::endl;
    wcscpy_s(data.name, L"Petrov");     mass.Add(&data);
    wcscpy_s(data.name, L"Sidorov");    mass.Add(&data);
    wcscpy_s(data.name, L"Ivanov");     mass.Add(&data);
    wcscpy_s(data.name, L"Smirnov");    mass.Add(&data);
    wcscpy_s(data.name, L"Morozov");    mass.Add(&data);
    Print();
    std::wcout << L"*****|Ubrali Sidorova|*****" << std::endl;
    mass.Remove(1);
    Print();
    std::wcout << L"*****|Postavili Sokolova pered Smirnovim|*****" << std::endl;
    wcscpy_s(data.name, L"Sokolov");    mass.Add(&data, 2);
    Print();
    std::wcout << L"*****|Pomenyali mestami Sokolova i Smirnova|*****" << std::endl;
    mass.Swap(2, 3);
    Print();
    std::wcout << L"*****|Udalili vseh|*****" << std::endl;
    mass.RemoveAll();
    Print();
 
    while(true)
    {
        std::wcout << L">:"; std::wcin >> buff;
        if(!wcscmp(buff, L"quit")) break;
    }
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru