SeedSet.h
Go to the documentation of this file.
// $Id$
//
// Copyright (C) 2014 Novartis Institutes for BioMedical Research
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
#pragma once
#include <map>
#include <algorithm>
#include "Seed.h"
namespace RDKit {
namespace FMCS {
class SeedSet { // sorted by amount of bonds
typedef std::list<Seed> ValueSet;
ValueSet Seeds;
Seed EmptySeed;
public:
typedef Seed Value;
typedef ValueSet::iterator iterator;
typedef ValueSet::const_iterator const_iterator;
public:
void clear() {
Seeds.clear();
}
void erase(iterator where) {
Seeds.erase(where);
}
size_t size () {
return Seeds.size (); // for statistics only
}
bool empty() {
return Seeds.empty();
}
iterator begin() {
return Seeds.begin();
}
iterator end () {
return Seeds.end ();
}
Value& front() {
return Seeds.front();
}
const_iterator begin()const {
return Seeds.begin();
}
const_iterator end ()const {
return Seeds.end ();
}
const Value& front()const {
return Seeds.front();
}
Value& push_back(const Value& seed) {
Seeds.push_back(seed);
return Seeds.back();
}
Value& add(const Value& seed) {
iterator where;
for(where = Seeds.begin(); where != Seeds.end(); where++) // find position in sorted list
if(where->getNumBonds() < seed.getNumBonds())
break;
iterator it = Seeds.insert(where, EmptySeed);
Value& val = *it;
val.setMoleculeFragment(seed);
return val;
}
};
}
}
RDKit::FMCS::SeedSet::Value
Seed Value
Definition: SeedSet.h:23
RDKit::FMCS::Seed
Definition: Seed.h:44
RDKit::FMCS::SeedSet::empty
bool empty()
Definition: SeedSet.h:37
RDKit::FMCS::Seed::setMoleculeFragment
void setMoleculeFragment(const Seed &src)
Definition: Seed.h:68
RDKit::FMCS::SeedSet
Definition: SeedSet.h:18
RDKit::FMCS::SeedSet::add
Value & add(const Value &seed)
Definition: SeedSet.h:63
Seed.h
RDKit::FMCS::SeedSet::begin
iterator begin()
Definition: SeedSet.h:40
RDKit::FMCS::SeedSet::erase
void erase(iterator where)
Definition: SeedSet.h:31
RDKit::FMCS::SeedSet::push_back
Value & push_back(const Value &seed)
Definition: SeedSet.h:59
RDKit::FMCS::SeedSet::front
const Value & front() const
Definition: SeedSet.h:55
RDKit::FMCS::Seed::getNumBonds
unsigned getNumBonds() const
Definition: Seed.h:105
RDKit::FMCS::SeedSet::end
iterator end()
Definition: SeedSet.h:43
RDKit::FMCS::SeedSet::size
size_t size()
Definition: SeedSet.h:34
RDKit::FMCS::SeedSet::begin
const_iterator begin() const
Definition: SeedSet.h:49
RDKit::FMCS::SeedSet::front
Value & front()
Definition: SeedSet.h:46
RDKit
Includes a bunch of functionality for handling Atom and Bond queries.
Definition: Atom.h:28
RDKit::FMCS::SeedSet::clear
void clear()
Definition: SeedSet.h:28
RDKit::FMCS::SeedSet::iterator
ValueSet::iterator iterator
Definition: SeedSet.h:24
RDKit::FMCS::SeedSet::end
const_iterator end() const
Definition: SeedSet.h:52
RDKit::FMCS::SeedSet::const_iterator
ValueSet::const_iterator const_iterator
Definition: SeedSet.h:25