void gensets(int m. int maxval)
{ int *v = new int[m] ,
IntSetlmp S(m, maxval ) , whi 1 e (S size() < m)
S insert(bigrand() % maxval)
S report(v ) :
for (i nt i = 0 . i < m. i ++) cout << v[i] << "\n" ,}
Поскольку функция insert не позволяет добавить в набор два одинаковых элемента, нам нет необходимости проверять наличие элемента в наборе до вызова этой функции.
Проще всего реализовать класс IntSet с помощью мощного и достаточно общего шаблона set из стандартной библиотеки шаблонов C++ STL.
class IntSetSTL { р г ivate: set<int> S: publiс .
IntSetSTL(int maxelements, int maxval) { } int size() {return S sizeO. } void l nsert (l nt t) { S Insert(t). } void report(int *v)
{ int j = 0;
set<int> iterator i , for (i = S.beginO, i != S.endO. ++i) v[ j + + ] = *i .}}.
Опубликовал vovan666
April 17 2013 00:03:16 ·
0 Комментариев ·
4380 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.