Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2015, 09:50   #1
shilovec5377
Форумчанин
 
Аватар для shilovec5377
 
Регистрация: 29.06.2011
Сообщений: 117
Радость Шаблонный класс vector

Всем привет.
Помогите создать шаблонный класс vector и массив который хранит значения.
Код:
template<typename T, size_t size>
class array{
public:
        array();
        array(const array<T>& );
 
        ~array();
private:
        T arr[size];
};
shilovec5377 вне форума Ответить с цитированием
Старый 10.06.2015, 10:37   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А что вы хотите в нем реализовать? Посмотрите, например, в std там кучка возможностей напиляно.
p51x на форуме Ответить с цитированием
Старый 10.06.2015, 12:48   #3
shilovec5377
Форумчанин
 
Аватар для shilovec5377
 
Регистрация: 29.06.2011
Сообщений: 117
Радость

Цитата:
Сообщение от p51x Посмотреть сообщение
А что вы хотите в нем реализовать? Посмотрите, например, в std там кучка возможностей напиляно.
Нужно создать шаблонный клас Vector и массив который хранит значения, и произвести сортировку.
вот код, правильно ли сделано или нет:
Код:
#include<stdexcept>
#include<iostream>
using namespace std;
template<typename T, size_t N>
class Vector
{
public:
	typedef T value_type;
	typedef T& reference;
	typedef const T& const_reference;
	typedef size_t size_type;
	static const size_type static_size = N;
	Vector(const T &t);
	size_type size() const
	{
		return static_size;
	}
	reference operator[](const size_type& i)
	{
		rangecheck(i);
        return elem[i];
	}
    const_reference operator[](const size_type& i) const
	{
        rangecheck(i);
		return elem[i];
    };
private:
	void rangecheck(const size_type& i) const
    {
		if (i >= size()) {
            throw range_error("Index out of range error!");
		}
    }
	T elem[N];
};
template<typename T, size_t N>
Vector<T, N>::Vector(const T &t)
{
	for (int i = 0; i < N; i++)
        elem[i] = t;
}
int main()
{
    Vector<int, 10> t(0);
    for (int i = 0; i < 10; i++)
		t[i] = i;
    for (int i = 0; i < 10; i++)
		cout << t[i];
    getchar();
	return 0;
}
shilovec5377 вне форума Ответить с цитированием
Старый 18.06.2015, 14:30   #4
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
Лампочка Теория

Вектор изначально с заданной длинной(размером), либо не тру, либо разреженный массив. Если это не так страшно, то я вас разочарую, вырезать из такого вектора, сплошное "удовольствие".

Для начало, определите что от него хотите, лучше чтоб он был динамический. Но разумеется выделять память каждый раз, не гуд. можно выделять память при необходимости, например, когда она закончилась, добавим в полтора раза больше, чем нужно.

Для этой цели Вам понадобиться написать, небольшой аллокатор, который просто будет получать новый размер и текущий массив.

Сортировка массива, требует произвольный доступ, особенно быстрая....
скобки будут не лишними.

остальное я так понял вам не нужно. Ну я не говорю про стандарт, добавить, удалить, заменить.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ - шаблонный класс FYNZIK Помощь студентам 0 22.03.2015 20:48
Шаблонный класс Мортира Общие вопросы C/C++ 0 18.04.2013 21:48
Шаблонный класс С++ MAO25 Помощь студентам 0 21.05.2010 23:46
Шаблонный класс Ozerich Общие вопросы C/C++ 8 06.05.2010 02:18
Шаблонный класс Syltan Общие вопросы C/C++ 2 22.11.2009 22:23