powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Небольшая проблема с шаблонами STL
3 сообщений из 3, страница 1 из 1
Небольшая проблема с шаблонами STL
    #38247748
Phantom_Z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Объясните пожалуйста, в чем моя ошибка (компилятор ругается на объявления векторов в protected)

Формулировка заданияСоздать шаблонную очередь mydeque с использованием STL-контейнера vector
(например, из двух векторов сделать одну очередь, так, что вставка в начало очереди – это
вставка в конец первого вектора, а вставка в конец очереди – вставка в конец второго
вектора). Определить в нем свои функции вставки в начало и в конец. Инстанцировать
очередь для вещественных чисел.

Код: plaintext
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.
#ifndef MYDEQUE_H
#define MYDEQUE_H
#include <vector>
#include <iostream>
template <class T, int size = 0> class mydeque
{
protected:
	vector<T> vb;
	vector<T> ve;
public:
	mydeque(int size)
	{
		//если число элементов очереди четно, делим между векторами поровну
		if ((size % 2) == 0) 
		{
			vb(size/2);
			ve(size/2);
		};
		else
		//если нечетно - одному из них достанется больше
		{
			vb((size+1)/2);
			ve((size-1)/2);
		}

	}
	//реализуется вставка в конец очереди
	void push_end(T el)
	{
		vb.push_back(el);
		ve.pop_back();
	}
	//реализуется вставка в начало очереди
	void push_beg(T el)
	{
		ve.push_back(el);
		vb.pop_back();
	}
	void show()
	{
		for (int i = 0; i<vb.size(); i++)
			std::cout<<vb[i];
		for (int i = 0; i<ve.size(); i++)
			std::cout<<ve[i];
	}
};

#endif



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include "mydeque.h"
int main()
{
	mydeque<double,10> que(10);
	que.show();
	return 0;
}
...
Рейтинг: 0 / 0
Небольшая проблема с шаблонами STL
    #38247765
Да тут полно ошибок. Читайте сообщения компилятора.
Вектор создавайте так std::vector<T> vb;
size в параметре шаблона переименуйте.

А тут в конце точку с запятой уберите и .resize используйте:
if ((size % 2) == 0)
{
vb.resize(size/2);
ve.resize(size/2);
}
...
Рейтинг: 0 / 0
Небольшая проблема с шаблонами STL
    #38248228
Sash_xp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Phantom_Z,

Зачем size в параматрах шаблона template <class T, int size = 0>?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Небольшая проблема с шаблонами STL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]