Molecules with multi-conformers are represented by OEMCMolBases in OEChem. OEMCMolBases derive from OEMolBases and support atom and bond iterators, but they also support conformer iterators. The following code shows a rudimentary example of looping over conformers.
#include "oechem.h"
#include <iostream>
using namespace OEChem;
using namespace OESystem;
using namespace std;
int main()
{
OEIter<OEMCMolBase> mol;
OEIter<OEConfBase> conf;
oemolistream ims;
for (mol=ims.GetMCMolBases(); mol; ++mol)
{
for(conf = mol->GetConfs(); conf; ++conf)
{
cerr << conf->GetTitle() << ": Energy = " << conf->GetEnergy() << endl;
}
}
return 0;
}