Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562

Класс Вектор

12.10.2010, 18:48. Показов 1917. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил написать свой класс вектор, приблизительно как в СТЛ. Сначала решил сделать каркас. Все функции без аллокатора и итератора. Сделал. И теперь возникла проблема. Стоит ли писать самому простенький аллокатор? И как это делается, насколько я понял через malloc/free или же new/delete тоже можно? Или лучше использовать стандартный класс Allocator? По тому, как делается сам аллокатор упоминание нашел в трех книжках, точнее про существование такого.
Две книжки Шилдта.
Книжка Страуструпа.

Что посоветуете делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2010, 18:48
Ответы с готовыми решениями:

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс "вектор" с конструкторами, которые позволяют создать нулевой вектор и вектор с...

Создать класс, полем которого является класс вектор
как это выглядит?

Класс Вектор
Здраствуйте! Может ли кто-нибудь помочь с объяснением проблемы , потому что я не знаю точно , что это берет. Это условие ....

3
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
12.10.2010, 23:32
Можно поковырять исходники

Не по теме:

http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/files.html

если ссылка не пройдёт,то гуглить надо на исходники stl
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
12.10.2010, 23:36
Цитата Сообщение от Lavroff Посмотреть сообщение
И как это делается, насколько я понял через malloc/free или же new/delete тоже можно?
Простите, а какую итоговую разницу Вы видите между этими подходами?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.10.2010, 23:39  [ТС]
ЗЫ. Доделал вроде. Протестировал на стандартном векторе - канает.

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
#include <limits>
 
template<class AllocType>
class Allocator
{
public:
    typedef AllocType value_type;
    typedef AllocType* pointer;
    typedef AllocType& reference;
    typedef const AllocType* const_pointer;
    typedef const AllocType& const_reference;
    typedef size_t size_type;
    typedef ptrdiff_t difference_type;
 
    Allocator();
    Allocator(const Allocator&);
    template<class OtherAlType>
    Allocator(const Allocator<OtherAlType>&) throw()
    {
    }
    Allocator& operator =(const Allocator&);
    ~Allocator();
    pointer adress (reference ref) const
    {
        return (&ref);
    }
    const_pointer adress (const_reference ref) const
    {
        return (&ref);
    }
    pointer allocate (size_type, const_pointer hint=0);
    void deallocate (pointer p, size_type n);
    const size_type max_size () const throw()
    {
        return std::numeric_limits<AllocType>::max();
    }
    pointer construct (pointer p, const_reference val);
    void destroy (pointer p);
    template<class OtherAlType>
    struct rebind
    {
        typedef Allocator<OtherAlType> other;
    };
};
 
template<class AllocType>
Allocator<AllocType>::Allocator() throw()
{
}
 
template<class AllocType>
Allocator<AllocType>::Allocator(const Allocator<AllocType>&)
{
}
 
template<class AllocType>
Allocator<AllocType>::~Allocator() throw()
{
}
 
template<class AllocType>
AllocType* Allocator<AllocType>::allocate(size_type sz, const_pointer hint=0)
{
    return new AllocType[sz];
}
 
template<class AllocType>
void Allocator<AllocType>::deallocate(pointer p, size_type)
{
    delete[] p;
}
 
template<class AllocType>
AllocType* Allocator<AllocType>::construct(pointer p, const_reference val)
{
    return new(p) AllocType(val);
}
 
template<class AllocType>
void Allocator<AllocType>::destroy(pointer p)
{
    p->~AllocType();
}
 
template<class AllocType>
Allocator<AllocType>& Allocator<AllocType>::operator =(const Allocator<AllocType> &)
{
    return *this;
}
 
template<class AllocType>
bool operator ==(const Allocator<AllocType>&, const Allocator<AllocType>&) throw()
{
    return true;
}
 
template<class AllocType>
bool operator !=(const Allocator<AllocType>&, const Allocator<AllocType>&) throw()
{
    return false;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2010, 23:39
Помогаю со студенческими работами здесь

Класс Вектор
Помогите пожалуйста горит индевидуалка... Создать класс векторов поддерживающий следующие операции: изменение размеров вектора,сложение...

Класс вектор С++
Вектор. Члены класса: 3 прямоугольные декартовые координаты. Методы: Конструктор, деструктор, метод вывода вектора, метод вычисления...

Класс-вектор в С++
Здраствуйте. Передо мной стоит задача реализовать произведение и сложение векторов. Информации, той, что я нашел, оказалось мало. Программу...

Класс Вектор
Нужна помощь в написании программы. Класс &quot;Вектор&quot;. (Чем он отличается от массива? в том что мне дали про вектора ни слова. Помогите...

Класс вектор
необходимо написать класс вектор (в геометрическом смысле в трёхмерном пространстве) реализовать : поворот вектора вокруг осей...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru