Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
remove_copy_remove_copy_if [2009/04/28 22:13] qba |
remove_copy_remove_copy_if [2009/04/28 22:17] qba |
||
---|---|---|---|
Linia 52: | Linia 52: | ||
===== Przyklad Uzycia ===== | ===== Przyklad Uzycia ===== | ||
+ | == Stworzenie kolekcji: == | ||
<code cpp> | <code cpp> | ||
- | bool Predykat(std::string element); | ||
- | |||
- | int main() | ||
- | { | ||
std::list<std::string> kolekcja_zrodlowa; //Tworzymy przykladowa kolekcje obiektow | std::list<std::string> kolekcja_zrodlowa; //Tworzymy przykladowa kolekcje obiektow | ||
kolekcja_zrodlowa.push_back("Adam"); //i wypelniamy ja przykladowymi wartosciami | kolekcja_zrodlowa.push_back("Adam"); //i wypelniamy ja przykladowymi wartosciami | ||
Linia 65: | Linia 62: | ||
kolekcja_zrodlowa.push_back("Jola"); | kolekcja_zrodlowa.push_back("Jola"); | ||
kolekcja_zrodlowa.push_back("Ola"); | kolekcja_zrodlowa.push_back("Ola"); | ||
- | + | </code> | |
- | //----------------------- | + | == remove_copy: == |
- | //Algorytm remove_copy: | + | <code cpp> |
- | //----------------------- | + | |
std::list<std::string> kolekcja_docelowa1; //Tworzymy kolekcje, do ktorej kopiowala bedzie funkcja remove_copy | std::list<std::string> kolekcja_docelowa1; //Tworzymy kolekcje, do ktorej kopiowala bedzie funkcja remove_copy | ||
std::string warunek="Usun"; //Tworzymy zmienna przechowujaca napis, ktory ma nie byc kopiowany | std::string warunek="Usun"; //Tworzymy zmienna przechowujaca napis, ktory ma nie byc kopiowany | ||
Linia 76: | Linia 72: | ||
std::list<std::string>::iterator doc1_iterator; //Funkcja ma skopiowac kolekcja_zrodlowa do kolekcja_docelowa1 pomijajac wartosc "Usun" | std::list<std::string>::iterator doc1_iterator; //Funkcja ma skopiowac kolekcja_zrodlowa do kolekcja_docelowa1 pomijajac wartosc "Usun" | ||
doc1_iterator = remove_copy(kolekcja_zrodlowa.begin(), kolekcja_zrodlowa.end(), kolekcja_docelowa1.begin(), warunek); | doc1_iterator = remove_copy(kolekcja_zrodlowa.begin(), kolekcja_zrodlowa.end(), kolekcja_docelowa1.begin(), warunek); | ||
- | + | </code> | |
- | + | ==remove_copy_if: == | |
- | //----------------------- | + | <code cpp> |
- | //Algorytm remove_copy_if: | + | |
- | //----------------------- | + | |
std::list<std::string> kolekcja_docelowa2; //Tworzymy kolekcje, do ktorej kopiowala bedzie funkcja remove_copy_if | std::list<std::string> kolekcja_docelowa2; //Tworzymy kolekcje, do ktorej kopiowala bedzie funkcja remove_copy_if | ||
Linia 88: | Linia 82: | ||
//dla ktorych Predykat() == true | //dla ktorych Predykat() == true | ||
doc2_iterator = remove_copy_if(kolekcja_zrodlowa.begin(), kolekcja_zrodlowa.end(), kolekcja_docelowa2.begin(), Predykat); | doc2_iterator = remove_copy_if(kolekcja_zrodlowa.begin(), kolekcja_zrodlowa.end(), kolekcja_docelowa2.begin(), Predykat); | ||
- | + | </code> | |
- | return 0; | + | == Funkcja predykat: == |
- | } | + | <code cpp> |
bool Predykat(std::string element){ //Funkcja warunek, ktora zostaje wywolywana przez funkcje remove_copy_if aby sprawdzic, | bool Predykat(std::string element){ //Funkcja warunek, ktora zostaje wywolywana przez funkcje remove_copy_if aby sprawdzic, | ||
//czy dany element nalezy usunac. | //czy dany element nalezy usunac. |