ďťż

Ładny brzuch

Witam, mam problem z utworzeniem tablicy o długości n zawierającej zbiory. Definiuje typ zbioru
#include <set> typedef set <int, greater <int> > zbior;
a następnie próbuje utworzyć tablicę
zbior *nowy = new zbior[n];

jednak później dostaje komunikat

[C++ Error] _algo.c(1489): E2093 'operator*' not implemented in type 'zbior' for arguments of the same type

wiem ze zbiory nie posiadają wskaźników tylko interatory. No i właśnie nie wiem jak utworzyć tą tablice. Ktoś wie jak rozwiązać ten problem??




jednak później dostaje komunikat
Jakbyś mógł określić kiedy później? bo mi taki kod:
typedef set<int,greater<int> > zbior; zbior *k=new zbior[12]; k[1].get_allocator();
kompiluje się pod borlandem i wszystko jest ok.

dzięki, z tamtym sobie już poradziłem, problem leżał jednak gdzie indziej.

Przy okazji chciałbym zapytać jeszcze o coś innego. Otóż mam problem z wyznaczeniem różnicy zbiorów.
#include <set> typedef set <int, greater <int> > zbior; //------------------------- zbior uu, ss, kk; ss.insert(1); ss.insert(2); ss.insert(3); kk.insert(3); kk.insert(4); uu.clear(); set_difference(ss.begin(),ss.end(),kk.begin(),kk.end(),insert_iterator< zbior>(uu, uu.begin())); printf("%d ", uu.size());

odejmuje od zbioru ss zbiór kk i różnicę przechowuję w zbiorze uu. Ilość elementów zbioru uu powinna wynieść 2 a otrzymuje 3. Czy ten zapis jest poprawny dla obliczenia różnicy zbiorów ss i kk??

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •