◐ Shell
clean mode source ↗

std::list::unique – cppreference.com

Aus cppreference.com

<metanoindex/>

<tbody> </tbody>

void unique();

(1)

template< class BinaryPredicate > void unique( BinaryPredicate p );

(2)

Entfernt alle aufeinander doppelte Elemente aus dem Behälter. Nur das erste Element in jeder Gruppe von Elementen gleich bleibt. Die erste Version verwendet operator== um die Elemente zu vergleichen, verwendet die zweite Version des gegebenen binären Prädikats p .

Original:

Removes all consecutive duplicate elements from the container. Only the first element in each group of equal elements is left. The first version uses operator== to compare the elements, the second version uses the given binary predicate p.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Parameter

p - binary predicate which returns ​true if the elements should be treated as equal.

The signature of the predicate function should be equivalent to the following:

bool pred(const Type1 &a, const Type2 &b);

The signature does not need to have const &, but the function must not modify the objects passed to it.
The types Type1 and Type2 must be such that an object of type list<T,Allocator>::const_iterator can be dereferenced and then implicitly converted to both of them.

Rückgabewert

(None)

Original:

(none)

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Komplexität

Linear in der Größe des Behälters

Original:

Linear in the size of the container

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Beispiel

#include <iostream>
#include <list>

int main()
{
  std::list<int> x = {1, 2, 2, 3, 3, 2, 1, 1, 2};

  std::cout << "contents before:";
  for (auto val : x)
    std::cout << ' ' << val;
  std::cout << '\n';

  x.unique();
  std::cout << "contents after unique():";
  for (auto val : x)
    std::cout << ' ' << val;
  std::cout << '\n';

  return 0;
}

Output:

contents before: 1 2 2 3 3 2 1 1 2
contents after unique(): 1 2 3 2 1 2

Siehe auch

removes consecutive duplicate elements in a range
(Funktions-Template) [edit]