V
Vunderkind
Здравствуйте!
В общем мне нужно написать код который должен добавлять новый элемент в вектор, если нет такого элемента, а если такой элемент уже есть в векторе, прога должна бросить его в исключение и вывести сообщение о ошибке.
Я написал прогу, но столкнулся с одной проблемой. Проблема такого: ранее добавленные мною элементы не сохраняются, и при повторном добавлении этого элемента прога не выводить сообщение об ошибке.
Требования:
нужно тестировать в функции main
нужно использовать шаблонный класс
можно объявить вектор глобальным, но у меня не получилось.
В общем мне нужно написать код который должен добавлять новый элемент в вектор, если нет такого элемента, а если такой элемент уже есть в векторе, прога должна бросить его в исключение и вывести сообщение о ошибке.
Я написал прогу, но столкнулся с одной проблемой. Проблема такого: ранее добавленные мною элементы не сохраняются, и при повторном добавлении этого элемента прога не выводить сообщение об ошибке.
Требования:
нужно тестировать в функции main
нужно использовать шаблонный класс
C++:
#include<iostream>
#include<vector>
#include<stdexcept>
using namespace std;
template <class T>
class Set {
public:
T vec;
Set(void):vec(5){}
class error
{
public:
T data;
error(T d) : data(d) {}
};
void vect(T d);
};
template <typename T>
void Set<T>::vect(T d){
Set<vector<T>> asp;
bool isEx=false;
for(int i=0;i<asp.vec.size();i++){
try{
if(asp.vec[i]==d){
isEx=true;
throw error(d);
}
}
catch (Set<T>::error e)
{
cout <<endl<<e.data<<" is already exist!\n"<<endl;
}
}
if(isEx==false)
asp.vec.push_back(d);
for(int i=0;i<asp.vec.size();i++){
cout<<asp.vec[i]<<" ";
}
cout<<endl;
}
int main(){
Set<int> vecti;
Set<double> db;
vecti.vect(3); // передаю в функцию цифру 3 чтобы он добавил в вектор
db.vect(10.2);
vecti.vect(3); // повторно передаю в функцию цифру 3, должна вывести сообщение об ощибке
system("pause");
return 0;}
можно объявить вектор глобальным, но у меня не получилось.