Operator negacji (jak sama nazwa wskazuje) neguje wartość wyrażenia logicznego zgodnie z tabelką:
p |
!p |
true |
false |
false |
true |
Negacji używasz kiedy chcesz sprawdzić odwrotny warunek.
Przykład: Klasa std::vector posiada metodę empty() która zwraca true gdy kontener jest pusty. Jeżeli chcesz wykonać obliczenia gdy vector posiada jakieś dane negujesz wynik funkcji empty()
std::vector wektor;
...
if (!wektor.empty()) {
std::cout << "Wektor nie jest pusty";
}