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

Реализация собственного шаблона класса vector - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ сортировка http://www.cyberforum.ru/cpp-beginners/thread1026291.html
Здравствуйте,помогите написать программу .Найти число, при котором "быстрая сортировка" следует заменить на сортировку вставками. P.S Я вот могу по отдельности написать сортировки,а тут не...
C++ Задача с перестановкой столбцов в матрице Ребят,всем привет,помогите пожалуйста с задачей. . Дана целочисленная квадратная матрица порядка n. Переставить столбцы таким образом, чтобы первая строка оказалась упорядоченной по возрастанию.... http://www.cyberforum.ru/cpp-beginners/thread1026289.html
Перегрузка C++
Здравствуйте! Получил вот такую лабу по перегрузке. Очень прошу знающих людей помочь. Класс: Множество целых чисел. Поля: Количество элементов в множестве, указатель на массив множества. Методы...
C++ Матрица, написать функцию, которая находит максимальную сумму, которую можно собрать, передвигаясь постепенно на соседние поля
Дана квадратная таблица с целыми числами . Написать функцию findMaxSum(table T, int size, i, j, steps):int, которая получает как параметры таблицу Т с числами, размер таблицы size, начальные...
C++ Перегрузки функций, пожалуйста выручайте! http://www.cyberforum.ru/cpp-beginners/thread1026246.html
Составьте программу для решения задачи. Определите значение x=max(a, max(a/2, cos b)) * max(2a-b,b) , где max(x,y) есть максимальное из чисел x,y. Разработайте функции нахождения максимального из...
C++ не работает функция с классом Всем добрый вечер! Не могу понять, почему функция change в нижеприведенной программе не работает, не меняет значения. #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { return 0; } подробнее

Показать сообщение отдельно
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182

Реализация собственного шаблона класса vector - C++

02.12.2013, 22:22. Просмотров 361. Ответов 0
Метки (Все метки)

Почему программа виснет, скажите, на что обратить внимание.
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
#include <string.h>
#define M 100
 
using namespace std;
 
class Item
{
public:
    int number;
    char * state;
};
 
template <class T>
class my_vector
{
    private:
        T * table;
        int n;
    public:
        my_vector();
        ~my_vector();
        Item& operator [] (int) const;
        char * dupl(char *);
        void del_Item(Item);
        int binsearch(int);
        int del(int);
        int inssort(int k, char * in);
        int insert(int k, char * in);
};
 
 
template <class  T>
my_vector <T> :: my_vector()
    {
        n = 0;
        for(int i = 0; i < M; i++)
        {
            table[i].number = 0;
            table[i].state = 0;
        }
    }
 
 
template <class  T>
my_vector <T> :: ~my_vector()
    {
        delete [] table;
    }
 
 
template <class  T>
Item& my_vector <T> :: operator [] (int i) const
    {
        return table[i];
    }
 
 
template <class  T>
char * my_vector <T> :: dupl(char * str)
{
    char *res = new char[strlen(str) + 1];
    strcpy(res, str);
    return res;
}
 
 
template <class  T>
void my_vector <T> :: del_Item(Item node)
{
    node.number = 0;
    delete [] node.state;
}
 
 
template <class  T>
int my_vector <T> :: binsearch(int key)
{
    int i = 0, k = n - 1, j;
    while(i <= k){
        j = (i + k) / 2;
        if(table[j].number == key)
            return j;
        if(table[j].number < key)
            i = j + 1;
        else
            k = j - 1;
    }
        return -1;
}
 
 
template <class  T>
int my_vector <T> :: del(int k)
{
    int i;
    if((i = binsearch(k)) < 0)
        return -1;
    del_Item(table[i]);
    --n;
    for(; i < n; i++)
        table[i] = table[i + 1];
    return 0;
}
 
 
template <class  T>
int my_vector <T> :: inssort(int k, char * state)
{
    int i;
    for(i = n-1; i >= 0 && table[i].number > k; i--)
        table[i + 1] = table[i];
    table[i + 1].number = k;
    table[i + 1].state = dupl(state);
    return ++n;
}
 
 
template <class  T>
int my_vector <T> :: insert(int k, char * state)
{
    if(binsearch(k) >= 0)
        return -1;
    if(n == M)
        return -2;
    return inssort(k, state);
}
 
 
int main()
{
    my_vector <Item> table;
    int k;
    char str[100];
    cin >> k;
    cin >> str;
    table.insert(k , str);
    cout << table[0].number << endl;
    cout << table[0].state << endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru