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

Класс массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсортировать вектор строк http://www.cyberforum.ru/cpp-beginners/thread351605.html
Есть какой алгоритм стандартный или хотя-бы вспомогательный? Естественно я о строках типа string, или может стоит каким другим типом воспользоваться для сортировки, я подумывал о map, но там ведь пары будут храниться и сортировка идти по ключу... В общем хотелось бы услышать ваши предложения :)
C++ Заполнение вектора другим вектором Есть два уже созданных вектора v и v2, со следующим содержимым: vector<int> v = {5, 3, 1, 3, 5, 2, 5, 3, 1, 3, 5, 2, 5}; vector<int> v2 = {5, 3, 1, 3, 5, 2, 5}; В процессе работы программы необходимо очистить вектор v2 и заполнить его значениями вектора v с 1 по 4 элемент. Как это сделать более эффективно? http://www.cyberforum.ru/cpp-beginners/thread351601.html
C++ ошибка в коде (нужна помощь)
вот сам код: #include <iostream.h> void show__parameters (int a=1, int b=2, int c=3) { cout << "a" << a << " b " << b << " c " << c << endl; }
Книги по С++ C++
Люди извините за топой вопрос хотел спросить у вас какие вы книги посоветует по С++ для новичка
C++ Быстрая сортировка http://www.cyberforum.ru/cpp-beginners/thread351590.html
Задача: пользователь задает количество элементов массива (макс. - 500 000), вводит их, затем задает количество запросов (макс. - 10000) и сами запросы (целые числа). Программа на каждый запрос выдает ответ, содержит ли массив это число. Время выполнения поиска при макс. значениях кол-ва элементов и запросов желательно не должно превышать 1 сек. Для сортировки массива перед поиском решил...
C++ Даны интегралы. Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001 помогите пожалуйста!!!! даны интегралы.Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001:по формулам прямоугольников?по формулам трапеций? подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.09.2011, 01:30     Класс массив
вектор без аллокатора
vector.hpp
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
142
143
#include <algorithm>
#include <stdexcept>
#include <iostream>
#include <iterator>
#include <cstddef>
#include <cstring>
 
namespace my {
 
    template< class Type >
    class vector {
    public:
        
        typedef Type            value_type;
        typedef Type*           iterator;
        typedef const Type*     const_iterator;
        typedef Type&           reference;
        typedef const Type&     const_reference;
        typedef std::size_t     size_type;
 
        explicit vector(size_type size = 0) : size_(size), arr(0)
        {
            this->capacity_ = (size == 0) ? 32 : size + size / 2 + 1;
            this->arr = new value_type [capacity_]();
        }
 
        vector(const vector& other)
        {
            this->size_ = other.size_;
            this->capacity_ = other.size_;
            this->arr = new Type [capacity_]();
            std::memcpy(this->arr, other.arr, this->size_ * sizeof(value_type));
        }
        
        ~vector()
        {
            delete [] this->arr;
        }
 
        vector& operator = (const vector& other)
        {
            if (&other != this)
                vector(other).swap(*this);
            return *this;
        }
 
        iterator begin()
        {
            return this->arr;
        }
 
        const_iterator begin() const
        {
            return this->arr;
        }
 
        iterator end()
        {
            return this->arr + size_;
        }
 
        const_iterator end() const
        {
            return this->arr + size_;
        }
 
        void swap(vector & other) throw()
        {
            std::swap(this->size_, other.size_);
            std::swap(this->capacity_, other.capacity_);
            std::swap(this->arr, other.arr);
        }
 
        size_type size() const
        {
            return this->size_;
        }
 
        size_type capacity() const
        {
            return this->capacity_;
        }
 
        reference operator [] (size_type i)
        {
        #if DEBUG_
            if (i >= this->size_)
                throw std::out_of_range("out of range throwed");
        #endif
            return this->arr[i];
        }
 
        const_reference operator [] (size_type i) const
        {
        #if DEBUG_
            if (i >= this->size_)
                throw std::out_of_range("out of range throwed");
        #endif
            return this->arr[i];
        }
 
        reference at(size_type i)
        {
            if (i < size_)
                return this->arr[i];
            else
                throw std::out_of_range("out of range throwed");
        }
 
        const_reference at(size_type i) const
        {
            if (i < size_)
                return this->arr[i];
            else
                throw std::out_of_range("out of range throwed");
        }
 
        void push_back(const_reference value)
        {
            if (this->size_ == this->capacity_)
            {
                this->capacity_ += this->size_ / 2 + 1;
                iterator iter = new value_type [capacity_]();
                std::memmove(iter, this->arr, this->size_ * sizeof(value_type));
                delete [] this->arr;
                this->arr = iter;
            }
 
            this->arr[size_++] = value;
        }
 
    private:
        template< class OtherType >
        vector(const vector< OtherType >&);
 
        template< class OtherType >
        vector& operator = (const vector< OtherType >&);
    private:
        iterator    arr;
        size_type   size_;
        size_type   capacity_;
    };
}

долго не отлаживал, возможно есть и ошибки
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru