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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ сортировка http://www.cyberforum.ru/cpp-beginners/thread1026291.html
Здравствуйте,помогите написать программу .Найти число, при котором "быстрая сортировка" следует заменить на сортировку вставками. P.S Я вот могу по отдельности написать сортировки,а тут не получается написать программу уже 3 день парюсь не получается.Заранее спасибо.
C++ Задача с перестановкой столбцов в матрице Ребят,всем привет,помогите пожалуйста с задачей. . Дана целочисленная квадратная матрица порядка n. Переставить столбцы таким образом, чтобы первая строка оказалась упорядоченной по возрастанию. Матрицу сформировать из случайных чисел в диапазоне от –10 до 10. Пробовал на парах решать,код там же оставил( Завтра добавлю,пока,что советы пожалуйста,либо алгоритмы посоветуйте. http://www.cyberforum.ru/cpp-beginners/thread1026289.html
Перегрузка C++
Здравствуйте! Получил вот такую лабу по перегрузке. Очень прошу знающих людей помочь. Класс: Множество целых чисел. Поля: Количество элементов в множестве, указатель на массив множества. Методы класса: Конструктор, деструктор, метод прибавления элемента к множеству. Операции по перезагрузке: Объедение(+), разница(-), пересечение(*), вывод элементов множества в поток(<<).
C++ Матрица, написать функцию, которая находит максимальную сумму, которую можно собрать, передвигаясь постепенно на соседние поля
Дана квадратная таблица с целыми числами . Написать функцию findMaxSum(table T, int size, i, j, steps):int, которая получает как параметры таблицу Т с числами, размер таблицы size, начальные координаты (i,j) и кол-во шагов steps. Функция должна найти максимальную сумму, которую можно собрать, передвигаясь постепенно на соседние поля (общая сторона) и сделав не более чем steps шагов. Значение...
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
02.12.2013, 22:22     Реализация собственного шаблона класса vector
Почему программа виснет, скажите, на что обратить внимание.
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru