#include <cstdlib> #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> w; vector<int>::iterator it; for(int i=1;i<=49;i++) w.push_back(i); cout << "Zawartosc wektora\n"; for(it=w.begin();it!=w.end();it++) cout << *it << " "; cout << endl; cout << "Size=" << w.size() << " Capacity=" << w.capacity() << endl; srand(time(NULL)); cout << "Random shuffle (numery lotto)\n"; random_shuffle(w.begin(),w.end()); for(it=w.begin();it!=w.begin()+6;it++) cout << *it << " "; cout << endl; }
Zaimplementuj klasę Wyraz
służącą do obsługi łańcuchów znaków składających się wyłącznie z liter.
Klasa Wyraz
:
string
)ostream
istream
. Pamiętaj, że wyrazy w strumieniu mogą być oddzielone od siebie dowolną ilością znaków nie będących literami. Przy wczytywaniu napisu należy zignorować wszystkie początkowe znaki aż do momentu pojawienia się litery zaczynającej wyraz. Jeśli nastąpił błąd odczytu lub w strumieniu nie znalazły się litery wówczas tworzony jest wyraz pusty.Przykład działania:
std::stringstream ss; // z biblioteki <sstream> ss << "!@&#&*(Ala_ma++kota" << endl; Wyraz w; while(!ss.eof()) { ss >> w; cout << w << endl; }
Wynik działania:
Ala ma kota
Przydatne funkcje:
<cctype>
: <iostream>
: Wykorzystaj kolekcję Map oraz klasę Wyraz do stworzenia słownika zgodnie z treścią zadania z pierwszych zajęć.
Przetestuj działanie algorytmów sort(), reverse(), fill(), rotate(), replace(), random_shuffle, min_element() na kolekcji vector.
fill
count_if
. Warunek do sprawdzenia przekaż jako wskaźnik do odpowiedniej funkcji.replace_if
. Warunek do sprawdzania przekaż za pomoca obiektu funkcyjnego (obiektu przeciążającego operator()).