diff --git a/alib2/src/automaton/FSM/CompactFA.cpp b/alib2/src/automaton/FSM/CompactFA.cpp
index 7fd01ebc5ed87cc2324200cf96d57d3996edd182..1e52c447346f4c62fae55b90c8649cba5c6a0f19 100644
--- a/alib2/src/automaton/FSM/CompactFA.cpp
+++ b/alib2/src/automaton/FSM/CompactFA.cpp
@@ -18,17 +18,12 @@ void CompactFA::addInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 void CompactFA::removeState(const State& state) {
-	for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end();
-			initialState++) {
-		if (*initialState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
-		}
+	if (initialStates.find(state) != initialStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
 	}
 
-	for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) {
-		if (*finalState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is final state.");
-		}
+	if (finalStates.find(state) != finalStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is final state.");
 	}
 
 	for (std::map<std::pair<State, string::String>, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
diff --git a/alib2/src/automaton/FSM/DFA.cpp b/alib2/src/automaton/FSM/DFA.cpp
index 4239419d0bf29c64794a24069abe2129153c4302..b5608b0bf2a66069cc3ec70fb5162953420282c2 100644
--- a/alib2/src/automaton/FSM/DFA.cpp
+++ b/alib2/src/automaton/FSM/DFA.cpp
@@ -18,17 +18,12 @@ void DFA::addInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 void DFA::removeState(const State& state) {
-	for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end();
-			initialState++) {
-		if (*initialState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
-		}
+	if (initialStates.find(state) != initialStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
 	}
 
-	for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) {
-		if (*finalState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is final state.");
-		}
+	if (finalStates.find(state) != finalStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is final state.");
 	}
 
 	for (std::map<std::pair<State, alphabet::Symbol>, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
diff --git a/alib2/src/automaton/FSM/EpsilonNFA.cpp b/alib2/src/automaton/FSM/EpsilonNFA.cpp
index 8e3edba670626c08d4307c6c3f797635b021de06..22a3a936d6810e719c5e71b5a8e816265ab664f1 100644
--- a/alib2/src/automaton/FSM/EpsilonNFA.cpp
+++ b/alib2/src/automaton/FSM/EpsilonNFA.cpp
@@ -18,17 +18,12 @@ void EpsilonNFA::addInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 void EpsilonNFA::removeState(const State& state) {
-	for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end();
-			initialState++) {
-		if (*initialState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
-		}
+	if (initialStates.find(state) != initialStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
 	}
 
-	for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) {
-		if (*finalState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is final state.");
-		}
+	if (finalStates.find(state) != finalStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is final state.");
 	}
 
 	for (std::map<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol> >, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
diff --git a/alib2/src/automaton/FSM/ExtendedFA.cpp b/alib2/src/automaton/FSM/ExtendedFA.cpp
index 1d771c7be7ab41dac2121e86450f59e04ea08420..15d92b3edb5c6908d4cc510ed984f03adb3f4bed 100644
--- a/alib2/src/automaton/FSM/ExtendedFA.cpp
+++ b/alib2/src/automaton/FSM/ExtendedFA.cpp
@@ -18,17 +18,12 @@ void ExtendedFA::addInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 void ExtendedFA::removeState(const State& state) {
-	for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end();
-			initialState++) {
-		if (*initialState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
-		}
+	if (initialStates.find(state) != initialStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
 	}
 
-	for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) {
-		if (*finalState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is final state.");
-		}
+	if (finalStates.find(state) != finalStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is final state.");
 	}
 
 	for (std::map<std::pair<State, regexp::RegExp>, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
diff --git a/alib2/src/automaton/FSM/NFA.cpp b/alib2/src/automaton/FSM/NFA.cpp
index 3c71952df306f33a35784ef3f0090f6f46204ecf..e0d75e51caadcd5ee53871386aa4d7b782185af5 100644
--- a/alib2/src/automaton/FSM/NFA.cpp
+++ b/alib2/src/automaton/FSM/NFA.cpp
@@ -18,17 +18,12 @@ void NFA::addInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 void NFA::removeState(const State& state) {
-	for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end();
-			initialState++) {
-		if (*initialState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
-		}
+	if (initialStates.find(state) != initialStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
 	}
 
-	for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) {
-		if (*finalState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is final state.");
-		}
+	if (finalStates.find(state) != finalStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is final state.");
 	}
 
 	for (std::map<std::pair<State, alphabet::Symbol>, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) {
diff --git a/alib2/src/automaton/PDA/PDA.cpp b/alib2/src/automaton/PDA/PDA.cpp
index 8e7fd58c6df16a634efd3a8a2298734ed4fe0602..87969dbb7bc8fead6dd79d1f49fd4633141235c3 100644
--- a/alib2/src/automaton/PDA/PDA.cpp
+++ b/alib2/src/automaton/PDA/PDA.cpp
@@ -18,17 +18,12 @@ void PDA::addInputSymbol(const alphabet::Symbol& symbol) {
 }
 
 void PDA::removeState(const State& state) {
-	for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end();
-			initialState++) {
-		if (*initialState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
-		}
+	if (initialStates.find(state) != initialStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is initial state.");
 	}
 
-	for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) {
-		if (*finalState == state) {
-			throw AutomatonException("State \"" + state.getName() + "\" is final state.");
-		}
+	if (finalStates.find(state) != finalStates.end()) {
+		throw AutomatonException("State \"" + state.getName() + "\" is final state.");
 	}
 
 	for (std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) {
@@ -75,10 +70,8 @@ void PDA::removeStackSymbol(const alphabet::Symbol& symbol) {
 		}
 	}
 
-	for(std::set<alphabet::Symbol>::const_iterator initialSymbol = initialSymbols.begin(); initialSymbol != initialSymbols.end(); initialSymbol++){
-		if(*initialSymbol == symbol) {
-			throw AutomatonException("Stack symbol \"" + symbol.getSymbol() + "\" is start symbol.");
-		}
+	if(initialSymbols.find(symbol) != initialSymbols.end()) {
+		throw AutomatonException("Stack symbol \"" + symbol.getSymbol() + "\" is start symbol.");
 	}
 
 	int removed = stackAlphabet.erase(symbol);