Narzędzia użytkownika

Narzędzia witryny


unique_unique_copy

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
unique_unique_copy [2009/04/30 00:48]
pgrabowska uzupelnienie
unique_unique_copy [2009/04/30 02:01]
pgrabowska
Linia 51: Linia 51:
  
 Należy uwzględnić fakt, że algorytm **unique** nie zmienia wielkości kontenera, ani nie zmienia elementów położonych za nowym końcem ( ciągle są dostępne ). Należy uwzględnić fakt, że algorytm **unique** nie zmienia wielkości kontenera, ani nie zmienia elementów położonych za nowym końcem ( ciągle są dostępne ).
 +
 +==== Przykład ====
 +
 +<code cpp>
 +#include <​iostream>​
 +#include <​algorithm>​
 +#include <​vector>​
 +using namespace std;
 +
 +// implementacja funkcji porownujacej elementy
 +bool comp(int i, int j) 
 +{
 +  return (i==j);
 +}
 +
 +int main () 
 +{
 + // tworzy wektory z powtarzajacymi sie po sobie elementami
 + int myints[] = {10,​20,​20,​20,​30,​30,​20,​20,​10};​
 + vector<​int>​ myvector (myints,​myints+9);​ //​ 10 20 20 20 30 30 20 20 10
 + vector<​int>::​iterator it;
 +
 + // PRZYKLAD UZYCIA UNIQUE Z DOMYSLNYM OPERATOREM ==
 +
 + // użycie unique z domyslnym operatorem == 
 + it = unique (myvector.begin(),​ myvector.end());​ // 10 20 30 20 10 30 20 20 10
 +
 + // dostosowanie wielkosci myvector do zaktualizowanej liczby elementow
 + myvector.resize( it - myvector.begin() );       // 10 20 30 20 10
 +
 + // wypisanie zawartosci myvector
 +        // 10 20 30 20 10
 + cout << "​\nunique z domyslnym operatorem==\n";​
 + for (vector<​int>::​iterator iter=myvector.begin();​ iter!=myvector.end();​ ++iter)
 + cout << " " << *iter;
 +
 +
 + // PRZYKLAD UZYCIA UNIQUE ZE ZDEFINIOWANA FUNKCJA POROWNUJACA ELEMENTY
 + myvector.clear();​
 + myvector.insert(myvector.begin(),​ myints, myints + 9); // 10 20 20 20 30 30 20 20 10
 +
 + // uzycie unique ze zdediniowana funkcja porownujaca elementy
 + it = unique (myvector.begin(),​ myvector.end(),​ comp); ​  // 10 20 30 20 10 30 20 20 10
 +
 + // dostosowanie wielkosci myvector do zaktualizowanej liczby elementow
 + myvector.resize( it - myvector.begin() );       // 10 20 30 20 10
 +
 + // wypisanie zawartosci myvector
 +        // 10 20 30 20 10
 + cout << "​\n\nunique ze zdefiniowana funkcja porownujaca\n";​
 + for (vector<​int>::​iterator iter=myvector.begin();​ iter!=myvector.end();​ ++iter)
 + cout << " " << *iter;
 +
 + cout << endl;
 +
 + return 0;
 +}
 +</​code>​
 +
 +
  
 ===== unique_copy ===== ===== unique_copy =====
Linia 93: Linia 153:
 Iterator wskazujący na koniec skopiowanego zakresu. Iterator wskazujący na koniec skopiowanego zakresu.
  
 +==== Przykład ====
 +
 +<code cpp>
 +#include <​iostream>​
 +#include <​algorithm>​
 +#include <​vector>​
 +using namespace std;
 +
 +// implementacja funkcji porownujacej elementy
 +bool comp(int i, int j) 
 +{
 +  return (i==j);
 +}
 +
 +int main () 
 +{
 + // tworzy wektory z powtarzajacymi sie po sobie elementami
 + int myints[] = {10,​20,​20,​20,​30,​30,​20,​20,​10};​
 + vector<​int>​ myvector (9); // 0 0 0 0 0 0 0 0 0
 + vector<​int>::​iterator it;
 +
 +
 + // użycie unique_copy z domyslnym operatorem == 
 + it=unique_copy (myints,​myints+9,​myvector.begin());​ // 10 20 30 20 10 0 0 0 0
 +
 + // sortowanie elementow
 + sort (myvector.begin(),​it);​ // 10 10 20 20 30 0 0 0 0
 +
 + // uzycie unique_copy ze zdediniowana funkcja porownujaca elementy
 + it=unique_copy (myvector.begin(),​ it, myvector.begin(),​ comp); // 10 20 30 20 30 0 0 0 0
 +
 + // dostosowanie wielkosci myvector1 do zaktualizowanej liczby elementow
 + myvector.resize( it - myvector.begin() ); // 10 20 30
 +
 + // wypisanie zawartosci
 +        // 10 20 30
 + for (vector<​int>::​iterator iter=myvector.begin();​ iter!=myvector.end();​ ++iter)
 + cout << " " << *iter;
 +
 + cout << endl;
 +
 + return 0;
 +}
 +</​code>​
  
  
 +===== Przykładowy program =====
 +{{:​stl_algorytmy:​unique_unique_copy.cpp|}}
  
  
unique_unique_copy.txt · ostatnio zmienione: 2009/04/30 02:01 przez pgrabowska