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

Класс контейнера, реализующий интерфейс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы символов http://www.cyberforum.ru/cpp-beginners/thread178026.html
Вообщем требуется создать программу, содержащую описание структуры AEROFLOT, с которой нужно провести некоторые взаимодействия. AEROFLOT состоит из нескольких символьных типов. Моя проблема возникает...
C++ Определить, в какой строке целочисленной матрицы находится самая длинная серия одинаковых элементов 2)Написать программу, определяющую, в какой строке целочисленной матрицы m x n находится самая длинная серия одинаковых злементов. Под серией имеются в виду элементы, расположенные подряд. Пример... http://www.cyberforum.ru/cpp-beginners/thread178002.html
C++ Functions
1)Даны два массива из n целых чисел каждый. Определить, в каком из них больше положительных элементов. Пример ввода (формат обязателен): 3 1 -1 3 2 2 2 Примеры вывода (формат обязателен):...
C++ Написать функцию, обеспечивающие решение квадратного уравнения.
Написать функцию, обеспечивающие решение квадратного уравнения. Параметрами функции должны быть коэффициенты и корни уравнения. Значение, возвращаемое функцией, должно передавать в вызывающию...
C++ Траблы с массивом http://www.cyberforum.ru/cpp-beginners/thread177987.html
Помогите решить: Дан массив вещественных чисел X=(x1,x2,..,xn). Записать элементы заданного массива Х в массив Y следующим образом: в начальной части расположить положительные элементы в порядке...
C++ демонстрирующую доступ к открытым членов-переменных класса Employee Записать программу, демонстрирующую доступ к открытым членов-переменных класса Employee (Служащие). В программе объявить класс Employee, содержащий открытые сменные itsAge (возраст), itsYearOfService... подробнее

Показать сообщение отдельно
Darklin
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 3

Класс контейнера, реализующий интерфейс - C++

18.10.2010, 15:49. Просмотров 1109. Ответов 3
Метки (Все метки)

Всем доброго времени суток. Возник вопрос по выполнению задания. Вот само задание:

Необходимо разработать класс контейнера, реализующий приведенный ниже
интерфейс. При разработке допускается использовать STL. Кроме этого,
внутренняя реализация ничем не ограничена.

C++
1
2
3
4
5
6
7
8
9
10
class ElemNotFound {};
 template < class ElemType, class IndexType > class IContainer
 {
 public:
 virtual const ElemType& GetElem( const IndexType& index ) const
throw ( ElemNotFound ) = 0;
 
 virtual void PutElem( const IndexType& index, const ElemType& elem )
 throw () = 0;
 };
Решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template <class ElemType, class IndexType> class CContainer: public IContainer < ElemType, IndexType > 
{ 
private:
std::vector<ElemType> elems;
std::vector<IndexType> indexes;
 
public:
virtual const ElemType& GetElem( const IndexType& index ) const throw ( ElemNotFound ){
for(int i=0;i<elems.size();i++)
{ 
if((IndexType)indexes[i]==index) //перегрузка оператора == в IndexType
return elems[i]; 
}
throw ElemNotFound();
};
 
virtual void PutElem( const IndexType& index, const ElemType& elem ) throw (){
elems.push_back(elem);
indexes.push_back(index);
};
CContainer(){};
~CContainer(){};
};
Вроде бы код работает нормально, но решение засчитали неправильным. Что сделал не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru