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

код реализации класса вектор

27.05.2009, 20:39. Просмотров 8809. Ответов 10
Метки нет (Все метки)

привет!!!!!!! поделитесь пожалусто кодом реализации класса вектор!!!!!! пожалусто........ нужно к завтрашнему(((99:'(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2009, 20:39
Ответы с готовыми решениями:

Написать код программы для реализации класса human
Написать код программы для реализации класса human с атрибутами класса имя и возраст и методами...

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от реализации класса....

Написать шаблон класса на основе класса vector для реализации стековой структуры данных
Пыталась написать код, но не уверена будет ли такая реализация корректной, можно ли это сделать...

Трудности в реализации класса
Не могу понять, почему не работают конструкторы класса... Прошу понятного объяснения=) вот код 1...

10
MCSD: APP BUILDER
8787 / 1065 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
27.05.2009, 21:40 2
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
#include <stdexcept>
 
template <typename T>
class Vec
{
public:
    typedef T* iterator;
    typedef const T& const_reference;
 
    Vec() : begin_(NULL), end_(NULL), last_(NULL)
    {
    }
 
    iterator push_back(const_reference _R)
    {
        if (!begin_)
        {
            begin_ = new T[1];
            end_ = last_ = begin_ + 1;
            *begin_ = _R;
            return begin_;
        }
        
        if (end_ == last_)
        {
            throw std::exception("Увеличение размера вектора недоступно в демонстрационной версии");
        }
        *end_ = _R;
        end_++;
        return end_-1;
    }
 
    void clear() { throw std::exception("Очистка вектора недоступна в демонстрационной версии"); }
 
    iterator begin() { return begin_; }
    iterator end() { return end_; }
 
private:
    iterator        begin_;
    iterator        end_;
    iterator        last_;
};
 
 
int main()
{
    Vec<int> v;
    v.push_back(1);
    return 0;
}
0
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
27.05.2009, 21:59  [ТС] 3
спасибо большое тебе токо я забыл мне не надо шаблона использовать(((( препод сказал что написать класс не изпользуя template!!!!!!!! это как-нибудь можно?? за ранее спасибо........
0
MCSD: APP BUILDER
8787 / 1065 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
27.05.2009, 22:04 4
ты только что понял на собственном опыте одно очень важное правило: ЗАДАЧУ НАДО ОПИСЫВАТЬ МАКСИМАЛЬНО ПОЛНО.
(и это гуд, ибо собственный опыт бесценен).
0
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
27.05.2009, 22:08  [ТС] 5
ну извини я спешу у мя н6е чё не получаеться((( и вот ошибаюсь постояно.............

Добавлено через 2 минуты 8 секунд
извини!!!!!!!!! просто я спешу и у мя ничего не получаеться(((((((
0
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
27.05.2009, 22:10 6
Цитата Сообщение от Rififi Посмотреть сообщение
C++
1
2
3
throw std::exception("Увеличение размера вектора недоступно в демонстрационной версии");
.....
throw std::exception("Очистка вектора недоступна в демонстрационной версии");
1
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
27.05.2009, 22:14  [ТС] 7
понятно.............. что ничего не понятно!!!!!!!! кто-нибудь имеет код класса вектор без использования template поделитесь пожалусто,,,,,,,,,,,,,,,, а то я завтро буду в пролете(((((:'(

Добавлено через 39 секунд
за ранее спасибо
0
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
27.05.2009, 22:18 8
это закоментируй
C++
1
template <typename T>
потом все Т замени на int

Ну и потом это
C++
1
Vec<int> v;
будет так
C++
1
Vec v;
0
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
27.05.2009, 22:53  [ТС] 9
спасибо.........
0
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
01.06.2009, 18:13  [ТС] 10
курсовая горит(((( а учебу лень кидать((((:'( кто может помочь??? функцию для удаление последнего элемента с описанием????
void vector:op_back(double y) //удаление последнего элемента
{...}

Добавлено через 1 минуту 18 секунд
Цитата Сообщение от губошлёп Посмотреть сообщение
void vector:: pop_back(double y) //удаление последнего элемента
sorri
0
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
15.06.2009, 13:36  [ТС] 11
вообщем разобраться не могу(((( есть код нашел
#include<fstream>
using namespace std;
class vector
{
private:
double *mas; //объявлен массив с именем mas по указателю
int N; //N количество элементов массива

public:
vector(); //создан пустой конструктор
vector(double *,int );
~vector(); //деструктор
void push_back(double); //функция для добавления элемента в конец
void pop_back(ofstream&); //функция для удаления последнего элемента
void insert(double,int); //функция для вставки в любое место
void erase(double,int); //произвольное удаление
void show_vector(ofstream&);
};
vector::vector(double *M,int k)
{
N=k;
mas=new double[N];
for(int i=0;i<N;i++)
mas[i]=M[i];

}
vector::vector()
{
N=0;
mas=0;
}
vector::~vector() //деструктор
{
delete[]mas; //удаление массива
}
void vector::show_vector(ofstream& ooo)
{
for(int i=0;i<N;i++)
ooo<<mas[i]<<' ';
ooo<<endl;
}
int vector::size()
{
return N;
}
void vector:ush_back(double x) //добавление нового элемента в конец массива
{

if(N==0)
{
N=N+1;
mas=new double[1];
mas[0]=x;
}
else
{
double *mas2=new double[N];
for(int i=0;i<N;i++)
mas2[i]=mas[i];
delete[]mas;
N=N+1;
mas=new double[N];
for(int i=0;i<N;i++)
mas[i]=mas2[i];
mas[N-1]=x;
delete[]mas2;

}

}
void vector:op_back(ofstream& ooo)
{
if(N!=0)
{
double *mas2=new double[N-1];
for(int i=0;i<N-1;i++)
{
mas2[i]=mas[i];
}
delete[]mas;
N=N-1;
mas=new double[N];
for(int i=0;i<N;i++)
mas[i]=mas2[i];
delete[]mas2; //удаление промежуточного массива
}
else
ooo<<"вектор пуст";

}
void vector::insert(double x,int k)
{
if(N==0)
{
mas=new double[1];
k=0;
mas[k]=x;
N=N+1;
}
else
{
double *mas2=new double[N+1];
for(int i=0;i<k;i++)
mas2[i]=mas[i];
mas2[k]=x;
for(int i=k+1;i<N+1;i++)
mas2[i]=mas[i-1];
delete[]mas;
N=N+1;
mas=new double[N];
for(int i=0;i<N;i++)
mas[i]=mas2[i];
delete[]mas2;
}


}
void vector::erase(double x,int k)
{
if((N!=0)&&(k<=N))
{
double *mas2=new double[N-1];
for(int i=0;i<k;i++)
mas2[i]=mas[i];
for(int i=k;i<N-1;i++)
mas2[i]=mas[i+1];
delete[]mas;
N=N-1;
mas=new double[N];
for(int i=0;i<N;i++)
mas[i]=mas2[i];
delete[]mas2;
}
}
void main()
{
ifstream in("input.txt");
ofstream out("output.txt");
vector A;
A.push_back(10);
A.push_back(5);
A.push_back(4);
A.show_vector(out);
A.pop_back(out);
A.pop_back(out);
A.show_vector(out);
A.insert(2,1);
A.insert(25,0);
A.show_vector(out);
double B[20];
int n;
in>>n;
for(int i=0;i<n;i++)
in>>B[i];
vector C(B,n);
C.show_vector(out);
}
ну вот токо проблема возникает во первых
1)нужна функция которая в случии если вектор заполнен не полнасть, то что-то с ним делала
2)я выше писал void vector:: pop_back(double y) //удаление последнего элемента
мне нужно знать что мы посылаемЮ, здесь double y моя догадка, и сам метод нужен, и если есть, то описание

Добавлено через 36 секунд
-вот этот смайл меняем на : p
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2009, 13:36

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

Составить описание класса "3D вектор". Объявить объекты класса и продемонстрировать работу методов
Возникли сложности при решении задачи. Буду признателен тем, кто поможет. Задание: Составить...

Детали реализации конструктора класса
Есть конструктор условного класса картинки и я не совсем понимаю нескольких вещей: #include...

Ошибки в реализации класса Vector3D
Здравствуйте. Помогите дурачку. Создать класс Vector3D. Реализовать: сложение векторов, скалярное...

Ошибка реализации класса String
#include &lt;iostream&gt; using namespace std; class String { private: char *pStr; int _size;...

Отделение интерфейса класса от реализации
Осваиваю раздел одной книги &quot;Отделение интерфейса класса от реализации&quot;. То что получилось можно и...

Идеи реализации класса Menu
Добрый день. В общем хочу разработать шаблонный класс Menu, чтобы постоянно не писать switch{}, но...


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

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

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