Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ решение судоку https://www.cyberforum.ru/ cpp-beginners/ thread36819.html
Судоку размера n называется квадрат со стороной n2, разделенный на n2 средних квадратов со стороной n, каждый из которых разделен на n2 маленьких квадратов. В каждом маленьком квадрате записано число...
C++ Создание строк
Строка символов представляет собой предложение, написанное на русском языке. Предложение заканчивается точкой. Подсчитать и вывести количество различных букв, которые входят в это предложение. Ответ...
C++ программка с динамическими массивами https://www.cyberforum.ru/ cpp-beginners/ thread36795.html
1. Ввести размер массива; 2.Сформировать массив с помощью операции new или библиотечных функций malloc (calloc); 3.Заполнить массив (можно с помощью датчика случайных чисел); 4.Выполнить задание...
C++ Перегрузка функций в Си++ Задачка легкая...но я вообще никак не дружу с си. Написать перегруженные функции и основную программу, которая их вызывает. а) для сложения десятичных дробей; б) для сложения обыкновенных дробей. https://www.cyberforum.ru/ cpp-beginners/ thread36784.html
C++ Минимальный элемент массива
Напишите кто может , как после ввода элементов массива найти минимальный элемент этого массива , без использования функции min.
C++ Односвязанные и двух-связанные списки Должны быть следующие функции: 1) Ввод количества элементов и заполнение списка случайными значениями 2) Вывод списка на экран 3) сортировка списка. 4) Добавление элемента в конец списка 5) Удаление... https://www.cyberforum.ru/ cpp-beginners/ thread36758.html
C++ Как вытащить массив структур? https://www.cyberforum.ru/ cpp-beginners/ thread36757.html
Вот собственно код: struct CandyBar { char name; float weight; int colorie; };
C++ WriteFileEx - не пишет в файл.
Нужен асинхронный ввод/вывод. Простой пример: char* b="abccccccccccccccccccccccccccccccccccc"; HANDLE my_file_output=CreateFileA( "output.txt", GENERIC_WRITE, 0, 0, CREATE_ALWAYS,...
C++ В функцию передать массивы чисел типа float. Первый элемент списка задает количество массивов https://www.cyberforum.ru/ cpp-beginners/ thread36751.html
В функцию передать массивы чисел типа float. Первый элемент списка задает количество массивов, первое число массива задает количество чисел в массиве. В стек как параметры записать адреса чисел, а...
C++ Проверка выделена ли память под указатель https://www.cyberforum.ru/ cpp-beginners/ thread36721.html
Уважаемые программисты!!!!! подскажите пожалуйста можно ли каким-либо способом проверить в условном операторе, выделена ли память под указатель я пытался делать так: if (ptr == NULL) { ptr =...
C++ класс "Предметный указатель"
у Нас есть класс "Предметный указатель" .. реализованный в 3 файлах.. всё работает.. нужно сделать так, чтобы появился раздел PRIVATE ( и в нём были какие то элементы) выручайте.. если что...
C++ Одномерный массив https://www.cyberforum.ru/ cpp-beginners/ thread36711.html
Помогите,пожайлуста,решить эту задачу! В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)максимальный по модулю элемент массива. 2)сумму элементов массива,расположенных...
0 / 0 / 0
Регистрация: 28.02.2009
Сообщений: 26
15.06.2009, 13:36  [ТС] 0

код реализации класса вектор - C++ - Ответ 193395

15.06.2009, 13:36. Показов 9328. Ответов 10
Метки (Все метки)

Ответ

вообщем разобраться не могу(((( есть код нашел
#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

Вернуться к обсуждению:
код реализации класса вектор C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2009, 13:36
Готовые ответы и решения:

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

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

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

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

10
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{}, но...

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