diff --git a/core/indigo-core/molecule/canonical_smiles_saver.h b/core/indigo-core/molecule/canonical_smiles_saver.h index d8e7326363..9ecd63ad8f 100644 --- a/core/indigo-core/molecule/canonical_smiles_saver.h +++ b/core/indigo-core/molecule/canonical_smiles_saver.h @@ -19,6 +19,8 @@ #ifndef __canonical_smiles_saver__ #define __canonical_smiles_saver__ +#include + #include "base_cpp/exception.h" #include "molecule/smiles_saver.h" @@ -38,7 +40,7 @@ namespace indigo DECL_ERROR; protected: - typedef RedBlackMap MapIntInt; + typedef std::map MapIntInt; TL_CP_DECL(Array, _actual_atom_atom_mapping); TL_CP_DECL(MapIntInt, _initial_to_actual); diff --git a/core/indigo-core/molecule/src/canonical_smiles_saver.cpp b/core/indigo-core/molecule/src/canonical_smiles_saver.cpp index 81c521ad66..1ee94c9596 100644 --- a/core/indigo-core/molecule/src/canonical_smiles_saver.cpp +++ b/core/indigo-core/molecule/src/canonical_smiles_saver.cpp @@ -37,7 +37,7 @@ CanonicalSmilesSaver::CanonicalSmilesSaver(Output& output) : SmilesSaver(output) ignore_hydrogens = true; canonize_chiralities = true; _initial_to_actual.clear(); - _initial_to_actual.insert(0, 0); + _initial_to_actual.emplace(0, 0); _aam_counter = 0; } @@ -121,14 +121,15 @@ void CanonicalSmilesSaver::saveMolecule(Molecule& mol_) int aam = mol.reaction_atom_mapping[order[i]]; if (aam) { - if (!_initial_to_actual.find(aam)) + const auto it = _initial_to_actual.find(aam); + if (it == _initial_to_actual.end()) { - _initial_to_actual.insert(aam, ++_aam_counter); + _initial_to_actual.emplace(aam, ++_aam_counter); _actual_atom_atom_mapping[order[i]] = _aam_counter; } else { - _actual_atom_atom_mapping[order[i]] = _initial_to_actual.at(aam); + _actual_atom_atom_mapping[order[i]] = it->second; } } }